local ffi = require 'ffi'

-- comments

--[[
/* #define CFITSIO_VERSION 3.49 ### string, not number "3.49" */
/* #define LONGLONG_MAX LLONG_MAX ### string, not number "LLONG_MAX" */
/* #define LONGLONG_MIN LLONG_MIN ### string, not number "LLONG_MIN" */
/* #define FLOATNULLVALUE -9.11912E-36F ### string, not number "-9.11912E-36F" */
/* #define DOUBLENULLVALUE -9.1191291391491E-36 ### string, not number "-9.1191291391491E-36" */
/* #    define OFF_T long long ### string, not number "long long" */
--]]

-- typedefs

require 'ffi.req' 'c.stdio'
require 'ffi.req' 'c.stdlib'

ffi.cdef[[
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef struct {
	char ttype[70];
	LONGLONG tbcol;
	int tdatatype;
	LONGLONG trepeat;
	double tscale;
	double tzero;
	LONGLONG tnull;
	char strnull[20];
	char tform[10];
	long twidth;
} tcolumn;
typedef struct {
	int filehandle;
	int driver;
	int open_count;
	char *filename;
	int validcode;
	int only_one;
	int noextsyntax;
	LONGLONG filesize;
	LONGLONG logfilesize;
	int lasthdu;
	LONGLONG bytepos;
	LONGLONG io_pos;
	int curbuf;
	int curhdu;
	int hdutype;
	int writemode;
	int maxhdu;
	int MAXHDU;
	LONGLONG *headstart;
	LONGLONG headend;
	LONGLONG ENDpos;
	LONGLONG nextkey;
	LONGLONG datastart;
	int imgdim;
	LONGLONG imgnaxis[99];
	int tfield;
	int startcol;
	LONGLONG origrows;
	LONGLONG numrows;
	LONGLONG rowlength;
	tcolumn *tableptr;
	LONGLONG heapstart;
	LONGLONG heapsize;
	int request_compress_type;
	long request_tilesize[6];
	float request_quantize_level;
	int request_quantize_method;
	int request_dither_seed;
	int request_lossy_int_compress;
	int request_huge_hdu;
	float request_hcomp_scale;
	int request_hcomp_smooth;
	int compress_type;
	long tilesize[6];
	float quantize_level;
	int quantize_method;
	int dither_seed;
	int compressimg;
	char zcmptype[12];
	int zbitpix;
	int zndim;
	long znaxis[6];
	long maxtilelen;
	long maxelem;
	int cn_compressed;
	int cn_uncompressed;
	int cn_gzip_data;
	int cn_zscale;
	int cn_zzero;
	int cn_zblank;
	double zscale;
	double zzero;
	double cn_bscale;
	double cn_bzero;
	double cn_actual_bzero;
	int zblank;
	int rice_blocksize;
	int rice_bytepix;
	float hcomp_scale;
	int hcomp_smooth;
	int *tilerow;
	long *tiledatasize;
	int *tiletype;
	void **tiledata;
	void **tilenullarray;
	int *tileanynull;
	char *iobuffer;
	long bufrecnum[40];
	int dirty[40];
	int ageindex[40];
} FITSfile;
typedef struct {
	int HDUposition;
	FITSfile *Fptr;
} fitsfile;
typedef struct {
	fitsfile *fptr;
	int colnum;
	char colname[70];
	int datatype;
	int iotype;
	void *array;
	long repeat;
	long tlmin;
	long tlmax;
	char tunit[70];
	char tdisp[70];
} iteratorCol;
typedef struct {
	int i;
	int m;
	int kind;
	char extnam[72];
	int extver;
	int extlev;
	char ttype[72];
	long row;
	int ndim;
	int *dimlen;
	double **arrayp;
} wtbarr;
typedef struct {
	int count;
	char ** path;
	char ** tag;
	fitsfile ** ifptr;
	char * expression;
	int bitpix;
	long blank;
	fitsfile * ofptr;
	char keyword[75];
	char comment[73];
} PixelFilter;
]]

local wrapper
wrapper = require 'ffi.libwrapper'{
	lib = require 'ffi.load' 'cfitsio',
	defs = {

		-- enums

		CFITSIO_MAJOR = 3,
		CFITSIO_MINOR = 49,
		CFITSIO_SONAME = 9,
		NIOBUF = 40,
		IOBUFLEN = 2880,
		FLEN_FILENAME = 1025,
		FLEN_KEYWORD = 75,
		FLEN_CARD = 81,
		FLEN_VALUE = 71,
		FLEN_COMMENT = 73,
		FLEN_ERRMSG = 81,
		FLEN_STATUS = 31,
		TBIT = 1,
		TBYTE = 11,
		TSBYTE = 12,
		TLOGICAL = 14,
		TSTRING = 16,
		TUSHORT = 20,
		TSHORT = 21,
		TUINT = 30,
		TINT = 31,
		TULONG = 40,
		TLONG = 41,
		TINT32BIT = 41,
		TFLOAT = 42,
		TULONGLONG = 80,
		TLONGLONG = 81,
		TDOUBLE = 82,
		TCOMPLEX = 83,
		TDBLCOMPLEX = 163,
		TYP_STRUC_KEY = 10,
		TYP_CMPRS_KEY = 20,
		TYP_SCAL_KEY = 30,
		TYP_NULL_KEY = 40,
		TYP_DIM_KEY = 50,
		TYP_RANG_KEY = 60,
		TYP_UNIT_KEY = 70,
		TYP_DISP_KEY = 80,
		TYP_HDUID_KEY = 90,
		TYP_CKSUM_KEY = 100,
		TYP_WCS_KEY = 110,
		TYP_REFSYS_KEY = 120,
		TYP_COMM_KEY = 130,
		TYP_CONT_KEY = 140,
		TYP_USER_KEY = 150,
		INT32BIT = 0,
		BYTE_IMG = 8,
		SHORT_IMG = 16,
		LONG_IMG = 32,
		LONGLONG_IMG = 64,
		FLOAT_IMG = -32,
		DOUBLE_IMG = -64,
		SBYTE_IMG = 10,
		USHORT_IMG = 20,
		ULONG_IMG = 40,
		ULONGLONG_IMG = 80,
		IMAGE_HDU = 0,
		ASCII_TBL = 1,
		BINARY_TBL = 2,
		ANY_HDU = -1,
		READONLY = 0,
		READWRITE = 1,
		NO_DITHER = -1,
		SUBTRACTIVE_DITHER_1 = 1,
		SUBTRACTIVE_DITHER_2 = 2,
		MAX_COMPRESS_DIM = 6,
		RICE_1 = 11,
		GZIP_1 = 21,
		GZIP_2 = 22,
		PLIO_1 = 31,
		HCOMPRESS_1 = 41,
		BZIP2_1 = 51,
		NOCOMPRESS = -1,
		TRUE = 1,
		FALSE = 0,
		CASESEN = 1,
		CASEINSEN = 0,
		GT_ID_ALL_URI = 0,
		GT_ID_REF = 1,
		GT_ID_POS = 2,
		GT_ID_ALL = 3,
		GT_ID_REF_URI = 11,
		GT_ID_POS_URI = 12,
		OPT_RM_GPT = 0,
		OPT_RM_ENTRY = 1,
		OPT_RM_MBR = 2,
		OPT_RM_ALL = 3,
		OPT_GCP_GPT = 0,
		OPT_GCP_MBR = 1,
		OPT_GCP_ALL = 2,
		OPT_MCP_ADD = 0,
		OPT_MCP_NADD = 1,
		OPT_MCP_REPL = 2,
		OPT_MCP_MOV = 3,
		OPT_MRG_COPY = 0,
		OPT_MRG_MOV = 1,
		OPT_CMT_MBR = 1,
		OPT_CMT_MBR_DEL = 11,
		VALIDSTRUC = 555,
		InputCol = 0,
		InputOutputCol = 1,
		OutputCol = 2,
		WCSLIB_GETWCSTAB = 1,
		CREATE_DISK_FILE = -106,
		OPEN_DISK_FILE = -105,
		SKIP_TABLE = -104,
		SKIP_IMAGE = -103,
		SKIP_NULL_PRIMARY = -102,
		USE_MEM_BUFF = -101,
		OVERFLOW_ERR = -11,
		PREPEND_PRIMARY = -9,
		SAME_FILE = 101,
		TOO_MANY_FILES = 103,
		FILE_NOT_OPENED = 104,
		FILE_NOT_CREATED = 105,
		WRITE_ERROR = 106,
		END_OF_FILE = 107,
		READ_ERROR = 108,
		FILE_NOT_CLOSED = 110,
		ARRAY_TOO_BIG = 111,
		READONLY_FILE = 112,
		MEMORY_ALLOCATION = 113,
		BAD_FILEPTR = 114,
		NULL_INPUT_PTR = 115,
		SEEK_ERROR = 116,
		BAD_NETTIMEOUT = 117,
		BAD_URL_PREFIX = 121,
		TOO_MANY_DRIVERS = 122,
		DRIVER_INIT_FAILED = 123,
		NO_MATCHING_DRIVER = 124,
		URL_PARSE_ERROR = 125,
		RANGE_PARSE_ERROR = 126,
		SHARED_ERRBASE = 150,
		SHARED_BADARG = 151,
		SHARED_NULPTR = 152,
		SHARED_TABFULL = 153,
		SHARED_NOTINIT = 154,
		SHARED_IPCERR = 155,
		SHARED_NOMEM = 156,
		SHARED_AGAIN = 157,
		SHARED_NOFILE = 158,
		SHARED_NORESIZE = 159,
		HEADER_NOT_EMPTY = 201,
		KEY_NO_EXIST = 202,
		KEY_OUT_BOUNDS = 203,
		VALUE_UNDEFINED = 204,
		NO_QUOTE = 205,
		BAD_INDEX_KEY = 206,
		BAD_KEYCHAR = 207,
		BAD_ORDER = 208,
		NOT_POS_INT = 209,
		NO_END = 210,
		BAD_BITPIX = 211,
		BAD_NAXIS = 212,
		BAD_NAXES = 213,
		BAD_PCOUNT = 214,
		BAD_GCOUNT = 215,
		BAD_TFIELDS = 216,
		NEG_WIDTH = 217,
		NEG_ROWS = 218,
		COL_NOT_FOUND = 219,
		BAD_SIMPLE = 220,
		NO_SIMPLE = 221,
		NO_BITPIX = 222,
		NO_NAXIS = 223,
		NO_NAXES = 224,
		NO_XTENSION = 225,
		NOT_ATABLE = 226,
		NOT_BTABLE = 227,
		NO_PCOUNT = 228,
		NO_GCOUNT = 229,
		NO_TFIELDS = 230,
		NO_TBCOL = 231,
		NO_TFORM = 232,
		NOT_IMAGE = 233,
		BAD_TBCOL = 234,
		NOT_TABLE = 235,
		COL_TOO_WIDE = 236,
		COL_NOT_UNIQUE = 237,
		BAD_ROW_WIDTH = 241,
		UNKNOWN_EXT = 251,
		UNKNOWN_REC = 252,
		END_JUNK = 253,
		BAD_HEADER_FILL = 254,
		BAD_DATA_FILL = 255,
		BAD_TFORM = 261,
		BAD_TFORM_DTYPE = 262,
		BAD_TDIM = 263,
		BAD_HEAP_PTR = 264,
		BAD_HDU_NUM = 301,
		BAD_COL_NUM = 302,
		NEG_FILE_POS = 304,
		NEG_BYTES = 306,
		BAD_ROW_NUM = 307,
		BAD_ELEM_NUM = 308,
		NOT_ASCII_COL = 309,
		NOT_LOGICAL_COL = 310,
		BAD_ATABLE_FORMAT = 311,
		BAD_BTABLE_FORMAT = 312,
		NO_NULL = 314,
		NOT_VARI_LEN = 317,
		BAD_DIMEN = 320,
		BAD_PIX_NUM = 321,
		ZERO_SCALE = 322,
		NEG_AXIS = 323,
		NOT_GROUP_TABLE = 340,
		HDU_ALREADY_MEMBER = 341,
		MEMBER_NOT_FOUND = 342,
		GROUP_NOT_FOUND = 343,
		BAD_GROUP_ID = 344,
		TOO_MANY_HDUS_TRACKED = 345,
		HDU_ALREADY_TRACKED = 346,
		BAD_OPTION = 347,
		IDENTICAL_POINTERS = 348,
		BAD_GROUP_ATTACH = 349,
		BAD_GROUP_DETACH = 350,
		BAD_I2C = 401,
		BAD_F2C = 402,
		BAD_INTKEY = 403,
		BAD_LOGICALKEY = 404,
		BAD_FLOATKEY = 405,
		BAD_DOUBLEKEY = 406,
		BAD_C2I = 407,
		BAD_C2F = 408,
		BAD_C2D = 409,
		BAD_DATATYPE = 410,
		BAD_DECIM = 411,
		NUM_OVERFLOW = 412,
		DATA_COMPRESSION_ERR = 413,
		DATA_DECOMPRESSION_ERR = 414,
		NO_COMPRESSED_TILE = 415,
		BAD_DATE = 420,
		PARSE_SYNTAX_ERR = 431,
		PARSE_BAD_TYPE = 432,
		PARSE_LRG_VECTOR = 433,
		PARSE_NO_OUTPUT = 434,
		PARSE_BAD_COL = 435,
		PARSE_BAD_OUTPUT = 436,
		ANGLE_TOO_BIG = 501,
		BAD_WCS_VAL = 502,
		WCS_ERROR = 503,
		BAD_WCS_PROJ = 504,
		NO_WCS_KEY = 505,
		APPROX_WCS_KEY = 506,
		NO_CLOSE_ERROR = 999,
		NGP_ERRBASE = 360,
		NGP_OK = 0,
		NGP_NO_MEMORY = 360,
		NGP_READ_ERR = 361,
		NGP_NUL_PTR = 362,
		NGP_EMPTY_CURLINE = 363,
		NGP_UNREAD_QUEUE_FULL = 364,
		NGP_INC_NESTING = 365,
		NGP_ERR_FOPEN = 366,
		NGP_EOF = 367,
		NGP_BAD_ARG = 368,
		NGP_TOKEN_NOT_EXPECT = 369,

		-- functions

		fits_read_wcstab = [[int fits_read_wcstab(fitsfile *fptr, int nwtb, wtbarr *wtb, int *status);]],
		CFITS2Unit = [[int CFITS2Unit(fitsfile *fptr);]],
		CUnit2FITS = [[fitsfile* CUnit2FITS(int unit);]],
		fits_get_token = [[int fits_get_token(char **ptr, char *delimiter, char *token, int *isanumber);]],
		fits_get_token2 = [[int fits_get_token2(char **ptr, char *delimiter, char **token, int *isanumber, int *status);]],
		fits_split_names = [[char * fits_split_names(char *list);]],
		ffiurl = [[int ffiurl(char *url, char *urltype, char *infile, char *outfile, char *extspec, char *rowfilter, char *binspec, char *colspec, int *status);]],
		ffifile = [[int ffifile(char *url, char *urltype, char *infile, char *outfile, char *extspec, char *rowfilter, char *binspec, char *colspec, char *pixfilter, int *status);]],
		ffifile2 = [[int ffifile2(char *url, char *urltype, char *infile, char *outfile, char *extspec, char *rowfilter, char *binspec, char *colspec, char *pixfilter, char *compspec, int *status);]],
		ffrtnm = [[int ffrtnm(char *url, char *rootname, int *status);]],
		ffexist = [[int ffexist(const char *infile, int *exists, int *status);]],
		ffexts = [[int ffexts(char *extspec, int *extnum, char *extname, int *extvers, int *hdutype, char *colname, char *rowexpress, int *status);]],
		ffextn = [[int ffextn(char *url, int *extension_num, int *status);]],
		ffurlt = [[int ffurlt(fitsfile *fptr, char *urlType, int *status);]],
		ffbins = [[int ffbins(char *binspec, int *imagetype, int *haxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], double *weight, char *wtname, int *recip, int *status);]],
		ffbinr = [[int ffbinr(char **binspec, char *colname, double *minin, double *maxin, double *binsizein, char *minname, char *maxname, char *binname, int *status);]],
		fits_copy_cell2image = [[int fits_copy_cell2image(fitsfile *fptr, fitsfile *newptr, char *colname, long rownum, int *status);]],
		fits_copy_image2cell = [[int fits_copy_image2cell(fitsfile *fptr, fitsfile *newptr, char *colname, long rownum, int copykeyflag, int *status);]],
		fits_copy_pixlist2image = [[int fits_copy_pixlist2image(fitsfile *infptr, fitsfile *outfptr, int firstkey, int naxis, int *colnum, int *status);]],
		ffimport_file = [[int ffimport_file(char *filename, char **contents, int *status);]],
		ffrwrg = [[int ffrwrg(char *rowlist, LONGLONG maxrows, int maxranges, int *numranges, long *minrow, long *maxrow, int *status);]],
		ffrwrgll = [[int ffrwrgll(char *rowlist, LONGLONG maxrows, int maxranges, int *numranges, LONGLONG *minrow, LONGLONG *maxrow, int *status);]],
		fits_init_cfitsio = [[int fits_init_cfitsio();]],
		ffomem = [[int ffomem(fitsfile **fptr, const char *name, int mode, void **buffptr, size_t *buffsize, size_t deltasize, void *(*mem_realloc)(void *p, size_t newsize), int *status);]],
		ffopen = [[int ffopen(fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffopentest = [[int ffopentest(int soname, fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffdopn = [[int ffdopn(fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffeopn = [[int ffeopn(fitsfile **fptr, const char *filename, int iomode, char *extlist, int *hdutype, int *status);]],
		fftopn = [[int fftopn(fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffiopn = [[int ffiopn(fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffdkopn = [[int ffdkopn(fitsfile **fptr, const char *filename, int iomode, int *status);]],
		ffreopen = [[int ffreopen(fitsfile *openfptr, fitsfile **newfptr, int *status);]],
		ffinit = [[int ffinit(fitsfile **fptr, const char *filename, int *status);]],
		ffdkinit = [[int ffdkinit(fitsfile **fptr, const char *filename, int *status);]],
		ffimem = [[int ffimem(fitsfile **fptr, void **buffptr, size_t *buffsize, size_t deltasize, void *(*mem_realloc)(void *p, size_t newsize), int *status);]],
		fftplt = [[int fftplt(fitsfile **fptr, const char *filename, const char *tempname, int *status);]],
		ffflus = [[int ffflus(fitsfile *fptr, int *status);]],
		ffflsh = [[int ffflsh(fitsfile *fptr, int clearbuf, int *status);]],
		ffclos = [[int ffclos(fitsfile *fptr, int *status);]],
		ffdelt = [[int ffdelt(fitsfile *fptr, int *status);]],
		ffflnm = [[int ffflnm(fitsfile *fptr, char *filename, int *status);]],
		ffflmd = [[int ffflmd(fitsfile *fptr, int *filemode, int *status);]],
		fits_delete_iraf_file = [[int fits_delete_iraf_file(const char *filename, int *status);]],
		ffvers = [[float ffvers(float *version);]],
		ffupch = [[void ffupch(char *string);]],
		ffgerr = [[void ffgerr(int status, char *errtext);]],
		ffpmsg = [[void ffpmsg(const char *err_message);]],
		ffpmrk = [[void ffpmrk();]],
		ffgmsg = [[int ffgmsg(char *err_message);]],
		ffcmsg = [[void ffcmsg();]],
		ffcmrk = [[void ffcmrk();]],
		ffrprt = [[void ffrprt(FILE *stream, int status);]],
		ffcmps = [[void ffcmps(char *templt, char *colname, int casesen, int *match, int *exact);]],
		fftkey = [[int fftkey(const char *keyword, int *status);]],
		fftrec = [[int fftrec(char *card, int *status);]],
		ffnchk = [[int ffnchk(fitsfile *fptr, int *status);]],
		ffkeyn = [[int ffkeyn(const char *keyroot, int value, char *keyname, int *status);]],
		ffnkey = [[int ffnkey(int value, const char *keyroot, char *keyname, int *status);]],
		ffgkcl = [[int ffgkcl(char *card);]],
		ffdtyp = [[int ffdtyp(const char *cval, char *dtype, int *status);]],
		ffinttyp = [[int ffinttyp(char *cval, int *datatype, int *negative, int *status);]],
		ffpsvc = [[int ffpsvc(char *card, char *value, char *comm, int *status);]],
		ffgknm = [[int ffgknm(char *card, char *name, int *length, int *status);]],
		ffgthd = [[int ffgthd(char *tmplt, char *card, int *hdtype, int *status);]],
		ffmkky = [[int ffmkky(const char *keyname, char *keyval, const char *comm, char *card, int *status);]],
		fits_translate_keyword = [[int fits_translate_keyword(char *inrec, char *outrec, char *patterns[][2], int npat, int n_value, int n_offset, int n_range, int *pat_num, int *i, int *j, int *m, int *n, int *status);]],
		fits_translate_keywords = [[int fits_translate_keywords(fitsfile *infptr, fitsfile *outfptr, int firstkey, char *patterns[][2], int npat, int n_value, int n_offset, int n_range, int *status);]],
		ffasfm = [[int ffasfm(char *tform, int *datacode, long *width, int *decim, int *status);]],
		ffbnfm = [[int ffbnfm(char *tform, int *datacode, long *repeat, long *width, int *status);]],
		ffbnfmll = [[int ffbnfmll(char *tform, int *datacode, LONGLONG *repeat, long *width, int *status);]],
		ffgabc = [[int ffgabc(int tfields, char **tform, int space, long *rowlen, long *tbcol, int *status);]],
		fits_get_section_range = [[int fits_get_section_range(char **ptr,long *secmin,long *secmax,long *incre, int *status);]],
		ffmbyt = [[int ffmbyt(fitsfile *fptr, LONGLONG bytpos, int ignore_err, int *status);]],
		ffpky = [[int ffpky(fitsfile *fptr, int datatype, const char *keyname, void *value, const char *comm, int *status);]],
		ffprec = [[int ffprec(fitsfile *fptr, const char *card, int *status);]],
		ffpcom = [[int ffpcom(fitsfile *fptr, const char *comm, int *status);]],
		ffpunt = [[int ffpunt(fitsfile *fptr, const char *keyname, const char *unit, int *status);]],
		ffphis = [[int ffphis(fitsfile *fptr, const char *history, int *status);]],
		ffpdat = [[int ffpdat(fitsfile *fptr, int *status);]],
		ffverifydate = [[int ffverifydate(int year, int month, int day, int *status);]],
		ffgstm = [[int ffgstm(char *timestr, int *timeref, int *status);]],
		ffgsdt = [[int ffgsdt(int *day, int *month, int *year, int *status);]],
		ffdt2s = [[int ffdt2s(int year, int month, int day, char *datestr, int *status);]],
		fftm2s = [[int fftm2s(int year, int month, int day, int hour, int minute, double second, int decimals, char *datestr, int *status);]],
		ffs2dt = [[int ffs2dt(char *datestr, int *year, int *month, int *day, int *status);]],
		ffs2tm = [[int ffs2tm(char *datestr, int *year, int *month, int *day, int *hour, int *minute, double *second, int *status);]],
		ffpkyu = [[int ffpkyu(fitsfile *fptr, const char *keyname, const char *comm, int *status);]],
		ffpkys = [[int ffpkys(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffpkls = [[int ffpkls(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffplsw = [[int ffplsw(fitsfile *fptr, int *status);]],
		ffpkyl = [[int ffpkyl(fitsfile *fptr, const char *keyname, int value, const char *comm, int *status);]],
		ffpkyj = [[int ffpkyj(fitsfile *fptr, const char *keyname, LONGLONG value, const char *comm, int *status);]],
		ffpkyuj = [[int ffpkyuj(fitsfile *fptr, const char *keyname, ULONGLONG value, const char *comm, int *status);]],
		ffpkyf = [[int ffpkyf(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffpkye = [[int ffpkye(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffpkyg = [[int ffpkyg(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffpkyd = [[int ffpkyd(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffpkyc = [[int ffpkyc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffpkym = [[int ffpkym(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffpkfc = [[int ffpkfc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffpkfm = [[int ffpkfm(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffpkyt = [[int ffpkyt(fitsfile *fptr, const char *keyname, long intval, double frac, const char *comm, int *status);]],
		ffptdm = [[int ffptdm(fitsfile *fptr, int colnum, int naxis, long naxes[], int *status);]],
		ffptdmll = [[int ffptdmll(fitsfile *fptr, int colnum, int naxis, LONGLONG naxes[], int *status);]],
		ffpkns = [[int ffpkns(fitsfile *fptr, const char *keyroot, int nstart, int nkey, char *value[], char *comm[], int *status);]],
		ffpknl = [[int ffpknl(fitsfile *fptr, const char *keyroot, int nstart, int nkey, int *value, char *comm[], int *status);]],
		ffpknj = [[int ffpknj(fitsfile *fptr, const char *keyroot, int nstart, int nkey, long *value, char *comm[], int *status);]],
		ffpknjj = [[int ffpknjj(fitsfile *fptr, const char *keyroot, int nstart, int nkey, LONGLONG *value, char *comm[], int *status);]],
		ffpknf = [[int ffpknf(fitsfile *fptr, const char *keyroot, int nstart, int nkey, float *value, int decim, char *comm[], int *status);]],
		ffpkne = [[int ffpkne(fitsfile *fptr, const char *keyroot, int nstart, int nkey, float *value, int decim, char *comm[], int *status);]],
		ffpkng = [[int ffpkng(fitsfile *fptr, const char *keyroot, int nstart, int nkey, double *value, int decim, char *comm[], int *status);]],
		ffpknd = [[int ffpknd(fitsfile *fptr, const char *keyroot, int nstart, int nkey, double *value, int decim, char *comm[], int *status);]],
		ffcpky = [[int ffcpky(fitsfile *infptr,fitsfile *outfptr,int incol,int outcol, char *rootname, int *status);]],
		ffphps = [[int ffphps(fitsfile *fptr, int bitpix, int naxis, long naxes[], int *status);]],
		ffphpsll = [[int ffphpsll(fitsfile *fptr, int bitpix, int naxis, LONGLONG naxes[], int *status);]],
		ffphpr = [[int ffphpr(fitsfile *fptr, int simple, int bitpix, int naxis, long naxes[], LONGLONG pcount, LONGLONG gcount, int extend, int *status);]],
		ffphprll = [[int ffphprll(fitsfile *fptr, int simple, int bitpix, int naxis, LONGLONG naxes[], LONGLONG pcount, LONGLONG gcount, int extend, int *status);]],
		ffphtb = [[int ffphtb(fitsfile *fptr, LONGLONG naxis1, LONGLONG naxis2, int tfields, char **ttype, long *tbcol, char **tform, char **tunit, const char *extname, int *status);]],
		ffphbn = [[int ffphbn(fitsfile *fptr, LONGLONG naxis2, int tfields, char **ttype, char **tform, char **tunit, const char *extname, LONGLONG pcount, int *status);]],
		ffphext = [[int ffphext(fitsfile *fptr, const char *xtension, int bitpix, int naxis, long naxes[], LONGLONG pcount, LONGLONG gcount, int *status);]],
		ffpktp = [[int ffpktp(fitsfile *fptr, const char *filename, int *status);]],
		ffghsp = [[int ffghsp(fitsfile *fptr, int *nexist, int *nmore, int *status);]],
		ffghps = [[int ffghps(fitsfile *fptr, int *nexist, int *position, int *status);]],
		ffmaky = [[int ffmaky(fitsfile *fptr, int nrec, int *status);]],
		ffmrky = [[int ffmrky(fitsfile *fptr, int nrec, int *status);]],
		ffgnxk = [[int ffgnxk(fitsfile *fptr, char **inclist, int ninc, char **exclist, int nexc, char *card, int *status);]],
		ffgrec = [[int ffgrec(fitsfile *fptr, int nrec, char *card, int *status);]],
		ffgcrd = [[int ffgcrd(fitsfile *fptr, const char *keyname, char *card, int *status);]],
		ffgstr = [[int ffgstr(fitsfile *fptr, const char *string, char *card, int *status);]],
		ffgunt = [[int ffgunt(fitsfile *fptr, const char *keyname, char *unit, int *status);]],
		ffgkyn = [[int ffgkyn(fitsfile *fptr, int nkey, char *keyname, char *keyval, char *comm, int *status);]],
		ffgkey = [[int ffgkey(fitsfile *fptr, const char *keyname, char *keyval, char *comm, int *status);]],
		ffgky = [[int ffgky(fitsfile *fptr, int datatype, const char *keyname, void *value, char *comm, int *status);]],
		ffgkys = [[int ffgkys(fitsfile *fptr, const char *keyname, char *value, char *comm, int *status);]],
		ffgksl = [[int ffgksl(fitsfile *fptr, const char *keyname, int *length, int *status);]],
		ffgkls = [[int ffgkls(fitsfile *fptr, const char *keyname, char **value, char *comm, int *status);]],
		ffgsky = [[int ffgsky(fitsfile *fptr, const char *keyname, int firstchar, int maxchar, char *value, int *valuelen, char *comm, int *status);]],
		fffree = [[int fffree(void *value, int *status);]],
		fffkls = [[int fffkls(char *value, int *status);]],
		ffgkyl = [[int ffgkyl(fitsfile *fptr, const char *keyname, int *value, char *comm, int *status);]],
		ffgkyj = [[int ffgkyj(fitsfile *fptr, const char *keyname, long *value, char *comm, int *status);]],
		ffgkyjj = [[int ffgkyjj(fitsfile *fptr, const char *keyname, LONGLONG *value, char *comm, int *status);]],
		ffgkyujj = [[int ffgkyujj(fitsfile *fptr, const char *keyname, ULONGLONG *value, char *comm, int *status);]],
		ffgkye = [[int ffgkye(fitsfile *fptr, const char *keyname, float *value, char *comm,int *status);]],
		ffgkyd = [[int ffgkyd(fitsfile *fptr, const char *keyname, double *value,char *comm,int *status);]],
		ffgkyc = [[int ffgkyc(fitsfile *fptr, const char *keyname, float *value, char *comm,int *status);]],
		ffgkym = [[int ffgkym(fitsfile *fptr, const char *keyname, double *value,char *comm,int *status);]],
		ffgkyt = [[int ffgkyt(fitsfile *fptr, const char *keyname, long *ivalue, double *dvalue, char *comm, int *status);]],
		ffgtdm = [[int ffgtdm(fitsfile *fptr, int colnum, int maxdim, int *naxis, long naxes[], int *status);]],
		ffgtdmll = [[int ffgtdmll(fitsfile *fptr, int colnum, int maxdim, int *naxis, LONGLONG naxes[], int *status);]],
		ffdtdm = [[int ffdtdm(fitsfile *fptr, char *tdimstr, int colnum, int maxdim, int *naxis, long naxes[], int *status);]],
		ffdtdmll = [[int ffdtdmll(fitsfile *fptr, char *tdimstr, int colnum, int maxdim, int *naxis, LONGLONG naxes[], int *status);]],
		ffgkns = [[int ffgkns(fitsfile *fptr, const char *keyname, int nstart, int nmax, char *value[], int *nfound, int *status);]],
		ffgknl = [[int ffgknl(fitsfile *fptr, const char *keyname, int nstart, int nmax, int *value, int *nfound, int *status);]],
		ffgknj = [[int ffgknj(fitsfile *fptr, const char *keyname, int nstart, int nmax, long *value, int *nfound, int *status);]],
		ffgknjj = [[int ffgknjj(fitsfile *fptr, const char *keyname, int nstart, int nmax, LONGLONG *value, int *nfound, int *status);]],
		ffgkne = [[int ffgkne(fitsfile *fptr, const char *keyname, int nstart, int nmax, float *value, int *nfound, int *status);]],
		ffgknd = [[int ffgknd(fitsfile *fptr, const char *keyname, int nstart, int nmax, double *value, int *nfound, int *status);]],
		ffh2st = [[int ffh2st(fitsfile *fptr, char **header, int *status);]],
		ffhdr2str = [[int ffhdr2str(fitsfile *fptr, int exclude_comm, char **exclist, int nexc, char **header, int *nkeys, int *status);]],
		ffcnvthdr2str = [[int ffcnvthdr2str(fitsfile *fptr, int exclude_comm, char **exclist, int nexc, char **header, int *nkeys, int *status);]],
		ffghpr = [[int ffghpr(fitsfile *fptr, int maxdim, int *simple, int *bitpix, int *naxis, long naxes[], long *pcount, long *gcount, int *extend, int *status);]],
		ffghprll = [[int ffghprll(fitsfile *fptr, int maxdim, int *simple, int *bitpix, int *naxis, LONGLONG naxes[], long *pcount, long *gcount, int *extend, int *status);]],
		ffghtb = [[int ffghtb(fitsfile *fptr,int maxfield, long *naxis1, long *naxis2, int *tfields, char **ttype, long *tbcol, char **tform, char **tunit, char *extname, int *status);]],
		ffghtbll = [[int ffghtbll(fitsfile *fptr,int maxfield, LONGLONG *naxis1, LONGLONG *naxis2, int *tfields, char **ttype, LONGLONG *tbcol, char **tform, char **tunit, char *extname, int *status);]],
		ffghbn = [[int ffghbn(fitsfile *fptr, int maxfield, long *naxis2, int *tfields, char **ttype, char **tform, char **tunit, char *extname, long *pcount, int *status);]],
		ffghbnll = [[int ffghbnll(fitsfile *fptr, int maxfield, LONGLONG *naxis2, int *tfields, char **ttype, char **tform, char **tunit, char *extname, LONGLONG *pcount, int *status);]],
		ffuky = [[int ffuky(fitsfile *fptr, int datatype, const char *keyname, void *value, const char *comm, int *status);]],
		ffucrd = [[int ffucrd(fitsfile *fptr, const char *keyname, const char *card, int *status);]],
		ffukyu = [[int ffukyu(fitsfile *fptr, const char *keyname, const char *comm, int *status);]],
		ffukys = [[int ffukys(fitsfile *fptr, const char *keyname, const char *value, const char *comm, int *status);]],
		ffukls = [[int ffukls(fitsfile *fptr, const char *keyname, const char *value, const char *comm, int *status);]],
		ffukyl = [[int ffukyl(fitsfile *fptr, const char *keyname, int value, const char *comm, int *status);]],
		ffukyj = [[int ffukyj(fitsfile *fptr, const char *keyname, LONGLONG value, const char *comm, int *status);]],
		ffukyf = [[int ffukyf(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffukye = [[int ffukye(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffukyg = [[int ffukyg(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffukyd = [[int ffukyd(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffukyc = [[int ffukyc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffukym = [[int ffukym(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffukfc = [[int ffukfc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffukfm = [[int ffukfm(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffmrec = [[int ffmrec(fitsfile *fptr, int nkey, const char *card, int *status);]],
		ffmcrd = [[int ffmcrd(fitsfile *fptr, const char *keyname, const char *card, int *status);]],
		ffmnam = [[int ffmnam(fitsfile *fptr, const char *oldname, const char *newname, int *status);]],
		ffmcom = [[int ffmcom(fitsfile *fptr, const char *keyname, const char *comm, int *status);]],
		ffmkyu = [[int ffmkyu(fitsfile *fptr, const char *keyname, const char *comm, int *status);]],
		ffmkys = [[int ffmkys(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffmkls = [[int ffmkls(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffmkyl = [[int ffmkyl(fitsfile *fptr, const char *keyname, int value, const char *comm, int *status);]],
		ffmkyj = [[int ffmkyj(fitsfile *fptr, const char *keyname, LONGLONG value, const char *comm, int *status);]],
		ffmkyf = [[int ffmkyf(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffmkye = [[int ffmkye(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffmkyg = [[int ffmkyg(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffmkyd = [[int ffmkyd(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffmkyc = [[int ffmkyc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffmkym = [[int ffmkym(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffmkfc = [[int ffmkfc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffmkfm = [[int ffmkfm(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffirec = [[int ffirec(fitsfile *fptr, int nkey, const char *card, int *status);]],
		ffikey = [[int ffikey(fitsfile *fptr, const char *card, int *status);]],
		ffikyu = [[int ffikyu(fitsfile *fptr, const char *keyname, const char *comm, int *status);]],
		ffikys = [[int ffikys(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffikls = [[int ffikls(fitsfile *fptr, const char *keyname, const char *value, const char *comm,int *status);]],
		ffikyl = [[int ffikyl(fitsfile *fptr, const char *keyname, int value, const char *comm, int *status);]],
		ffikyj = [[int ffikyj(fitsfile *fptr, const char *keyname, LONGLONG value, const char *comm, int *status);]],
		ffikyf = [[int ffikyf(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffikye = [[int ffikye(fitsfile *fptr, const char *keyname, float value, int decim, const char *comm, int *status);]],
		ffikyg = [[int ffikyg(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffikyd = [[int ffikyd(fitsfile *fptr, const char *keyname, double value, int decim, const char *comm, int *status);]],
		ffikyc = [[int ffikyc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffikym = [[int ffikym(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffikfc = [[int ffikfc(fitsfile *fptr, const char *keyname, float *value, int decim, const char *comm, int *status);]],
		ffikfm = [[int ffikfm(fitsfile *fptr, const char *keyname, double *value, int decim, const char *comm, int *status);]],
		ffdkey = [[int ffdkey(fitsfile *fptr, const char *keyname, int *status);]],
		ffdstr = [[int ffdstr(fitsfile *fptr, const char *string, int *status);]],
		ffdrec = [[int ffdrec(fitsfile *fptr, int keypos, int *status);]],
		ffghdn = [[int ffghdn(fitsfile *fptr, int *chdunum);]],
		ffghdt = [[int ffghdt(fitsfile *fptr, int *exttype, int *status);]],
		ffghad = [[int ffghad(fitsfile *fptr, long *headstart, long *datastart, long *dataend, int *status);]],
		ffghadll = [[int ffghadll(fitsfile *fptr, LONGLONG *headstart, LONGLONG *datastart, LONGLONG *dataend, int *status);]],
		ffghof = [[int ffghof(fitsfile *fptr, long long *headstart, long long *datastart, long long *dataend, int *status);]],
		ffgipr = [[int ffgipr(fitsfile *fptr, int maxaxis, int *imgtype, int *naxis, long *naxes, int *status);]],
		ffgiprll = [[int ffgiprll(fitsfile *fptr, int maxaxis, int *imgtype, int *naxis, LONGLONG *naxes, int *status);]],
		ffgidt = [[int ffgidt(fitsfile *fptr, int *imgtype, int *status);]],
		ffgiet = [[int ffgiet(fitsfile *fptr, int *imgtype, int *status);]],
		ffgidm = [[int ffgidm(fitsfile *fptr, int *naxis, int *status);]],
		ffgisz = [[int ffgisz(fitsfile *fptr, int nlen, long *naxes, int *status);]],
		ffgiszll = [[int ffgiszll(fitsfile *fptr, int nlen, LONGLONG *naxes, int *status);]],
		ffmahd = [[int ffmahd(fitsfile *fptr, int hdunum, int *exttype, int *status);]],
		ffmrhd = [[int ffmrhd(fitsfile *fptr, int hdumov, int *exttype, int *status);]],
		ffmnhd = [[int ffmnhd(fitsfile *fptr, int exttype, char *hduname, int hduvers, int *status);]],
		ffthdu = [[int ffthdu(fitsfile *fptr, int *nhdu, int *status);]],
		ffcrhd = [[int ffcrhd(fitsfile *fptr, int *status);]],
		ffcrim = [[int ffcrim(fitsfile *fptr, int bitpix, int naxis, long *naxes, int *status);]],
		ffcrimll = [[int ffcrimll(fitsfile *fptr, int bitpix, int naxis, LONGLONG *naxes, int *status);]],
		ffcrtb = [[int ffcrtb(fitsfile *fptr, int tbltype, LONGLONG naxis2, int tfields, char **ttype, char **tform, char **tunit, const char *extname, int *status);]],
		ffiimg = [[int ffiimg(fitsfile *fptr, int bitpix, int naxis, long *naxes, int *status);]],
		ffiimgll = [[int ffiimgll(fitsfile *fptr, int bitpix, int naxis, LONGLONG *naxes, int *status);]],
		ffitab = [[int ffitab(fitsfile *fptr, LONGLONG naxis1, LONGLONG naxis2, int tfields, char **ttype, long *tbcol, char **tform, char **tunit, const char *extname, int *status);]],
		ffibin = [[int ffibin(fitsfile *fptr, LONGLONG naxis2, int tfields, char **ttype, char **tform, char **tunit, const char *extname, LONGLONG pcount, int *status);]],
		ffrsim = [[int ffrsim(fitsfile *fptr, int bitpix, int naxis, long *naxes, int *status);]],
		ffrsimll = [[int ffrsimll(fitsfile *fptr, int bitpix, int naxis, LONGLONG *naxes, int *status);]],
		ffdhdu = [[int ffdhdu(fitsfile *fptr, int *hdutype, int *status);]],
		ffcopy = [[int ffcopy(fitsfile *infptr, fitsfile *outfptr, int morekeys, int *status);]],
		ffcpfl = [[int ffcpfl(fitsfile *infptr, fitsfile *outfptr, int prev, int cur, int follow, int *status);]],
		ffcphd = [[int ffcphd(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		ffcpdt = [[int ffcpdt(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		ffchfl = [[int ffchfl(fitsfile *fptr, int *status);]],
		ffcdfl = [[int ffcdfl(fitsfile *fptr, int *status);]],
		ffwrhdu = [[int ffwrhdu(fitsfile *fptr, FILE *outstream, int *status);]],
		ffrdef = [[int ffrdef(fitsfile *fptr, int *status);]],
		ffrhdu = [[int ffrhdu(fitsfile *fptr, int *hdutype, int *status);]],
		ffhdef = [[int ffhdef(fitsfile *fptr, int morekeys, int *status);]],
		ffpthp = [[int ffpthp(fitsfile *fptr, long theap, int *status);]],
		ffcsum = [[int ffcsum(fitsfile *fptr, long nrec, unsigned long *sum, int *status);]],
		ffesum = [[void ffesum(unsigned long sum, int complm, char *ascii);]],
		ffdsum = [[unsigned long ffdsum(char *ascii, int complm, unsigned long *sum);]],
		ffpcks = [[int ffpcks(fitsfile *fptr, int *status);]],
		ffupck = [[int ffupck(fitsfile *fptr, int *status);]],
		ffvcks = [[int ffvcks(fitsfile *fptr, int *datastatus, int *hdustatus, int *status);]],
		ffgcks = [[int ffgcks(fitsfile *fptr, unsigned long *datasum, unsigned long *hdusum, int *status);]],
		ffpscl = [[int ffpscl(fitsfile *fptr, double scale, double zeroval, int *status);]],
		ffpnul = [[int ffpnul(fitsfile *fptr, LONGLONG nulvalue, int *status);]],
		fftscl = [[int fftscl(fitsfile *fptr, int colnum, double scale, double zeroval, int *status);]],
		fftnul = [[int fftnul(fitsfile *fptr, int colnum, LONGLONG nulvalue, int *status);]],
		ffsnul = [[int ffsnul(fitsfile *fptr, int colnum, char *nulstring, int *status);]],
		ffgcno = [[int ffgcno(fitsfile *fptr, int casesen, char *templt, int *colnum, int *status);]],
		ffgcnn = [[int ffgcnn(fitsfile *fptr, int casesen, char *templt, char *colname, int *colnum, int *status);]],
		ffgtcl = [[int ffgtcl(fitsfile *fptr, int colnum, int *typecode, long *repeat, long *width, int *status);]],
		ffgtclll = [[int ffgtclll(fitsfile *fptr, int colnum, int *typecode, LONGLONG *repeat, LONGLONG *width, int *status);]],
		ffeqty = [[int ffeqty(fitsfile *fptr, int colnum, int *typecode, long *repeat, long *width, int *status);]],
		ffeqtyll = [[int ffeqtyll(fitsfile *fptr, int colnum, int *typecode, LONGLONG *repeat, LONGLONG *width, int *status);]],
		ffgncl = [[int ffgncl(fitsfile *fptr, int *ncols, int *status);]],
		ffgnrw = [[int ffgnrw(fitsfile *fptr, long *nrows, int *status);]],
		ffgnrwll = [[int ffgnrwll(fitsfile *fptr, LONGLONG *nrows, int *status);]],
		ffgacl = [[int ffgacl(fitsfile *fptr, int colnum, char *ttype, long *tbcol, char *tunit, char *tform, double *tscal, double *tzero, char *tnull, char *tdisp, int *status);]],
		ffgbcl = [[int ffgbcl(fitsfile *fptr, int colnum, char *ttype, char *tunit, char *dtype, long *repeat, double *tscal, double *tzero, long *tnull, char *tdisp, int *status);]],
		ffgbclll = [[int ffgbclll(fitsfile *fptr, int colnum, char *ttype, char *tunit, char *dtype, LONGLONG *repeat, double *tscal, double *tzero, LONGLONG *tnull, char *tdisp, int *status);]],
		ffgrsz = [[int ffgrsz(fitsfile *fptr, long *nrows, int *status);]],
		ffgcdw = [[int ffgcdw(fitsfile *fptr, int colnum, int *width, int *status);]],
		ffgpxv = [[int ffgpxv(fitsfile *fptr, int datatype, long *firstpix, LONGLONG nelem, void *nulval, void *array, int *anynul, int *status);]],
		ffgpxvll = [[int ffgpxvll(fitsfile *fptr, int datatype, LONGLONG *firstpix, LONGLONG nelem, void *nulval, void *array, int *anynul, int *status);]],
		ffgpxf = [[int ffgpxf(fitsfile *fptr, int datatype, long *firstpix, LONGLONG nelem, void *array, char *nullarray, int *anynul, int *status);]],
		ffgpxfll = [[int ffgpxfll(fitsfile *fptr, int datatype, LONGLONG *firstpix, LONGLONG nelem, void *array, char *nullarray, int *anynul, int *status);]],
		ffgsv = [[int ffgsv(fitsfile *fptr, int datatype, long *blc, long *trc, long *inc, void *nulval, void *array, int *anynul, int *status);]],
		ffgpv = [[int ffgpv(fitsfile *fptr, int datatype, LONGLONG firstelem, LONGLONG nelem, void *nulval, void *array, int *anynul, int *status);]],
		ffgpf = [[int ffgpf(fitsfile *fptr, int datatype, LONGLONG firstelem, LONGLONG nelem, void *array, char *nullarray, int *anynul, int *status);]],
		ffgpvb = [[int ffgpvb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned char nulval, unsigned char *array, int *anynul, int *status);]],
		ffgpvsb = [[int ffgpvsb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, signed char nulval, signed char *array, int *anynul, int *status);]],
		ffgpvui = [[int ffgpvui(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned short nulval, unsigned short *array, int *anynul, int *status);]],
		ffgpvi = [[int ffgpvi(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, short nulval, short *array, int *anynul, int *status);]],
		ffgpvuj = [[int ffgpvuj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned long nulval, unsigned long *array, int *anynul, int *status);]],
		ffgpvj = [[int ffgpvj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, long nulval, long *array, int *anynul, int *status);]],
		ffgpvujj = [[int ffgpvujj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, ULONGLONG nulval, ULONGLONG *array, int *anynul, int *status);]],
		ffgpvjj = [[int ffgpvjj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, LONGLONG nulval, LONGLONG *array, int *anynul, int *status);]],
		ffgpvuk = [[int ffgpvuk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned int nulval, unsigned int *array, int *anynul, int *status);]],
		ffgpvk = [[int ffgpvk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, int nulval, int *array, int *anynul, int *status);]],
		ffgpve = [[int ffgpve(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, float nulval, float *array, int *anynul, int *status);]],
		ffgpvd = [[int ffgpvd(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, double nulval, double *array, int *anynul, int *status);]],
		ffgpfb = [[int ffgpfb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, char *nularray, int *anynul, int *status);]],
		ffgpfsb = [[int ffgpfsb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, signed char *array, char *nularray, int *anynul, int *status);]],
		ffgpfui = [[int ffgpfui(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, char *nularray, int *anynul, int *status);]],
		ffgpfi = [[int ffgpfi(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, short *array, char *nularray, int *anynul, int *status);]],
		ffgpfuj = [[int ffgpfuj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, char *nularray, int *anynul, int *status);]],
		ffgpfj = [[int ffgpfj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, long *array, char *nularray, int *anynul, int *status);]],
		ffgpfujj = [[int ffgpfujj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, char *nularray, int *anynul, int *status);]],
		ffgpfjj = [[int ffgpfjj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, char *nularray, int *anynul, int *status);]],
		ffgpfuk = [[int ffgpfuk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, char *nularray, int *anynul, int *status);]],
		ffgpfk = [[int ffgpfk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, int *array, char *nularray, int *anynul, int *status);]],
		ffgpfe = [[int ffgpfe(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, float *array, char *nularray, int *anynul, int *status);]],
		ffgpfd = [[int ffgpfd(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, double *array, char *nularray, int *anynul, int *status);]],
		ffg2db = [[int ffg2db(fitsfile *fptr, long group, unsigned char nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned char *array, int *anynul, int *status);]],
		ffg2dsb = [[int ffg2dsb(fitsfile *fptr, long group, signed char nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, signed char *array, int *anynul, int *status);]],
		ffg2dui = [[int ffg2dui(fitsfile *fptr, long group, unsigned short nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned short *array, int *anynul, int *status);]],
		ffg2di = [[int ffg2di(fitsfile *fptr, long group, short nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, short *array, int *anynul, int *status);]],
		ffg2duj = [[int ffg2duj(fitsfile *fptr, long group, unsigned long nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned long *array, int *anynul, int *status);]],
		ffg2dj = [[int ffg2dj(fitsfile *fptr, long group, long nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, long *array, int *anynul, int *status);]],
		ffg2dujj = [[int ffg2dujj(fitsfile *fptr, long group, ULONGLONG nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, ULONGLONG *array, int *anynul, int *status);]],
		ffg2djj = [[int ffg2djj(fitsfile *fptr, long group, LONGLONG nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, LONGLONG *array, int *anynul, int *status);]],
		ffg2duk = [[int ffg2duk(fitsfile *fptr, long group, unsigned int nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned int *array, int *anynul, int *status);]],
		ffg2dk = [[int ffg2dk(fitsfile *fptr, long group, int nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, int *array, int *anynul, int *status);]],
		ffg2de = [[int ffg2de(fitsfile *fptr, long group, float nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, float *array, int *anynul, int *status);]],
		ffg2dd = [[int ffg2dd(fitsfile *fptr, long group, double nulval, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, double *array, int *anynul, int *status);]],
		ffg3db = [[int ffg3db(fitsfile *fptr, long group, unsigned char nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned char *array, int *anynul, int *status);]],
		ffg3dsb = [[int ffg3dsb(fitsfile *fptr, long group, signed char nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, signed char *array, int *anynul, int *status);]],
		ffg3dui = [[int ffg3dui(fitsfile *fptr, long group, unsigned short nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned short *array, int *anynul, int *status);]],
		ffg3di = [[int ffg3di(fitsfile *fptr, long group, short nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, short *array, int *anynul, int *status);]],
		ffg3duj = [[int ffg3duj(fitsfile *fptr, long group, unsigned long nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned long *array, int *anynul, int *status);]],
		ffg3dj = [[int ffg3dj(fitsfile *fptr, long group, long nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, long *array, int *anynul, int *status);]],
		ffg3dujj = [[int ffg3dujj(fitsfile *fptr, long group, ULONGLONG nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, ULONGLONG *array, int *anynul, int *status);]],
		ffg3djj = [[int ffg3djj(fitsfile *fptr, long group, LONGLONG nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, LONGLONG *array, int *anynul, int *status);]],
		ffg3duk = [[int ffg3duk(fitsfile *fptr, long group, unsigned int nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned int *array, int *anynul, int *status);]],
		ffg3dk = [[int ffg3dk(fitsfile *fptr, long group, int nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, int *array, int *anynul, int *status);]],
		ffg3de = [[int ffg3de(fitsfile *fptr, long group, float nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, float *array, int *anynul, int *status);]],
		ffg3dd = [[int ffg3dd(fitsfile *fptr, long group, double nulval, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, double *array, int *anynul, int *status);]],
		ffgsvb = [[int ffgsvb(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned char nulval, unsigned char *array, int *anynul, int *status);]],
		ffgsvsb = [[int ffgsvsb(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, signed char nulval, signed char *array, int *anynul, int *status);]],
		ffgsvui = [[int ffgsvui(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned short nulval, unsigned short *array, int *anynul, int *status);]],
		ffgsvi = [[int ffgsvi(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, short nulval, short *array, int *anynul, int *status);]],
		ffgsvuj = [[int ffgsvuj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned long nulval, unsigned long *array, int *anynul, int *status);]],
		ffgsvj = [[int ffgsvj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, long nulval, long *array, int *anynul, int *status);]],
		ffgsvujj = [[int ffgsvujj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, ULONGLONG nulval, ULONGLONG *array, int *anynul, int *status);]],
		ffgsvjj = [[int ffgsvjj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, LONGLONG nulval, LONGLONG *array, int *anynul, int *status);]],
		ffgsvuk = [[int ffgsvuk(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned int nulval, unsigned int *array, int *anynul, int *status);]],
		ffgsvk = [[int ffgsvk(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, int nulval, int *array, int *anynul, int *status);]],
		ffgsve = [[int ffgsve(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, float nulval, float *array, int *anynul, int *status);]],
		ffgsvd = [[int ffgsvd(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, double nulval, double *array, int *anynul, int *status);]],
		ffgsfb = [[int ffgsfb(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned char *array, char *flagval, int *anynul, int *status);]],
		ffgsfsb = [[int ffgsfsb(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, signed char *array, char *flagval, int *anynul, int *status);]],
		ffgsfui = [[int ffgsfui(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned short *array, char *flagval, int *anynul, int *status);]],
		ffgsfi = [[int ffgsfi(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, short *array, char *flagval, int *anynul, int *status);]],
		ffgsfuj = [[int ffgsfuj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned long *array, char *flagval, int *anynul, int *status);]],
		ffgsfj = [[int ffgsfj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, long *array, char *flagval, int *anynul, int *status);]],
		ffgsfujj = [[int ffgsfujj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, ULONGLONG *array, char *flagval, int *anynul, int *status);]],
		ffgsfjj = [[int ffgsfjj(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, LONGLONG *array, char *flagval, int *anynul, int *status);]],
		ffgsfuk = [[int ffgsfuk(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, unsigned int *array, char *flagval, int *anynul, int *status);]],
		ffgsfk = [[int ffgsfk(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, int *array, char *flagval, int *anynul, int *status);]],
		ffgsfe = [[int ffgsfe(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, float *array, char *flagval, int *anynul, int *status);]],
		ffgsfd = [[int ffgsfd(fitsfile *fptr, int colnum, int naxis, long *naxes, long *blc, long *trc, long *inc, double *array, char *flagval, int *anynul, int *status);]],
		ffggpb = [[int ffggpb(fitsfile *fptr, long group, long firstelem, long nelem, unsigned char *array, int *status);]],
		ffggpsb = [[int ffggpsb(fitsfile *fptr, long group, long firstelem, long nelem, signed char *array, int *status);]],
		ffggpui = [[int ffggpui(fitsfile *fptr, long group, long firstelem, long nelem, unsigned short *array, int *status);]],
		ffggpi = [[int ffggpi(fitsfile *fptr, long group, long firstelem, long nelem, short *array, int *status);]],
		ffggpuj = [[int ffggpuj(fitsfile *fptr, long group, long firstelem, long nelem, unsigned long *array, int *status);]],
		ffggpj = [[int ffggpj(fitsfile *fptr, long group, long firstelem, long nelem, long *array, int *status);]],
		ffggpujj = [[int ffggpujj(fitsfile *fptr, long group, long firstelem, long nelem, ULONGLONG *array, int *status);]],
		ffggpjj = [[int ffggpjj(fitsfile *fptr, long group, long firstelem, long nelem, LONGLONG *array, int *status);]],
		ffggpuk = [[int ffggpuk(fitsfile *fptr, long group, long firstelem, long nelem, unsigned int *array, int *status);]],
		ffggpk = [[int ffggpk(fitsfile *fptr, long group, long firstelem, long nelem, int *array, int *status);]],
		ffggpe = [[int ffggpe(fitsfile *fptr, long group, long firstelem, long nelem, float *array, int *status);]],
		ffggpd = [[int ffggpd(fitsfile *fptr, long group, long firstelem, long nelem, double *array, int *status);]],
		ffgcv = [[int ffgcv(fitsfile *fptr, int datatype, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, void *nulval, void *array, int *anynul, int *status);]],
		ffgcf = [[int ffgcf(fitsfile *fptr, int datatype, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, void *array, char *nullarray, int *anynul, int *status);]],
		ffgcvs = [[int ffgcvs(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char *nulval, char **array, int *anynul, int *status);]],
		ffgcl = [[int ffgcl(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char *array, int *status);]],
		ffgcvl = [[int ffgcvl(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char nulval, char *array, int *anynul, int *status);]],
		ffgcvb = [[int ffgcvb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned char nulval, unsigned char *array, int *anynul, int *status);]],
		ffgcvsb = [[int ffgcvsb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, signed char nulval, signed char *array, int *anynul, int *status);]],
		ffgcvui = [[int ffgcvui(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned short nulval, unsigned short *array, int *anynul, int *status);]],
		ffgcvi = [[int ffgcvi(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, short nulval, short *array, int *anynul, int *status);]],
		ffgcvuj = [[int ffgcvuj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned long nulval, unsigned long *array, int *anynul, int *status);]],
		ffgcvj = [[int ffgcvj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, long nulval, long *array, int *anynul, int *status);]],
		ffgcvujj = [[int ffgcvujj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, ULONGLONG nulval, ULONGLONG *array, int *anynul, int *status);]],
		ffgcvjj = [[int ffgcvjj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, LONGLONG nulval, LONGLONG *array, int *anynul, int *status);]],
		ffgcvuk = [[int ffgcvuk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned int nulval, unsigned int *array, int *anynul, int *status);]],
		ffgcvk = [[int ffgcvk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, int nulval, int *array, int *anynul, int *status);]],
		ffgcve = [[int ffgcve(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float nulval, float *array, int *anynul, int *status);]],
		ffgcvd = [[int ffgcvd(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double nulval, double *array, int *anynul, int *status);]],
		ffgcvc = [[int ffgcvc(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float nulval, float *array, int *anynul, int *status);]],
		ffgcvm = [[int ffgcvm(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double nulval, double *array, int *anynul, int *status);]],
		ffgcx = [[int ffgcx(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstbit, LONGLONG nbits, char *larray, int *status);]],
		ffgcxui = [[int ffgcxui(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG nrows, long firstbit, int nbits, unsigned short *array, int *status);]],
		ffgcxuk = [[int ffgcxuk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG nrows, long firstbit, int nbits, unsigned int *array, int *status);]],
		ffgcfs = [[int ffgcfs(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char **array, char *nularray, int *anynul, int *status);]],
		ffgcfl = [[int ffgcfl(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char *array, char *nularray, int *anynul, int *status);]],
		ffgcfb = [[int ffgcfb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, char *nularray, int *anynul, int *status);]],
		ffgcfsb = [[int ffgcfsb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, signed char *array, char *nularray, int *anynul, int *status);]],
		ffgcfui = [[int ffgcfui(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, char *nularray, int *anynul, int *status);]],
		ffgcfi = [[int ffgcfi(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, short *array, char *nularray, int *anynul, int *status);]],
		ffgcfuj = [[int ffgcfuj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, char *nularray, int *anynul, int *status);]],
		ffgcfj = [[int ffgcfj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, long *array, char *nularray, int *anynul, int *status);]],
		ffgcfujj = [[int ffgcfujj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, char *nularray, int *anynul, int *status);]],
		ffgcfjj = [[int ffgcfjj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, char *nularray, int *anynul, int *status);]],
		ffgcfuk = [[int ffgcfuk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, char *nularray, int *anynul, int *status);]],
		ffgcfk = [[int ffgcfk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, int *array, char *nularray, int *anynul, int *status);]],
		ffgcfe = [[int ffgcfe(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float *array, char *nularray, int *anynul, int *status);]],
		ffgcfd = [[int ffgcfd(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double *array, char *nularray, int *anynul, int *status);]],
		ffgcfc = [[int ffgcfc(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float *array, char *nularray, int *anynul, int *status);]],
		ffgcfm = [[int ffgcfm(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double *array, char *nularray, int *anynul, int *status);]],
		ffgdes = [[int ffgdes(fitsfile *fptr, int colnum, LONGLONG rownum, long *length, long *heapaddr, int *status);]],
		ffgdesll = [[int ffgdesll(fitsfile *fptr, int colnum, LONGLONG rownum, LONGLONG *length, LONGLONG *heapaddr, int *status);]],
		ffgdess = [[int ffgdess(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG nrows, long *length, long *heapaddr, int *status);]],
		ffgdessll = [[int ffgdessll(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG nrows, LONGLONG *length, LONGLONG *heapaddr, int *status);]],
		ffpdes = [[int ffpdes(fitsfile *fptr, int colnum, LONGLONG rownum, LONGLONG length, LONGLONG heapaddr, int *status);]],
		fftheap = [[int fftheap(fitsfile *fptr, LONGLONG *heapsize, LONGLONG *unused, LONGLONG *overlap, int *valid, int *status);]],
		ffcmph = [[int ffcmph(fitsfile *fptr, int *status);]],
		ffgtbb = [[int ffgtbb(fitsfile *fptr, LONGLONG firstrow, LONGLONG firstchar, LONGLONG nchars, unsigned char *values, int *status);]],
		ffgextn = [[int ffgextn(fitsfile *fptr, LONGLONG offset, LONGLONG nelem, void *array, int *status);]],
		ffpextn = [[int ffpextn(fitsfile *fptr, LONGLONG offset, LONGLONG nelem, void *array, int *status);]],
		ffppx = [[int ffppx(fitsfile *fptr, int datatype, long *firstpix, LONGLONG nelem, void *array, int *status);]],
		ffppxll = [[int ffppxll(fitsfile *fptr, int datatype, LONGLONG *firstpix, LONGLONG nelem, void *array, int *status);]],
		ffppxn = [[int ffppxn(fitsfile *fptr, int datatype, long *firstpix, LONGLONG nelem, void *array, void *nulval, int *status);]],
		ffppxnll = [[int ffppxnll(fitsfile *fptr, int datatype, LONGLONG *firstpix, LONGLONG nelem, void *array, void *nulval, int *status);]],
		ffppr = [[int ffppr(fitsfile *fptr, int datatype, LONGLONG firstelem, LONGLONG nelem, void *array, int *status);]],
		ffpprb = [[int ffpprb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, int *status);]],
		ffpprsb = [[int ffpprsb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, signed char *array, int *status);]],
		ffpprui = [[int ffpprui(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, int *status);]],
		ffppri = [[int ffppri(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, short *array, int *status);]],
		ffppruj = [[int ffppruj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, int *status);]],
		ffpprj = [[int ffpprj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, long *array, int *status);]],
		ffppruk = [[int ffppruk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, int *status);]],
		ffpprk = [[int ffpprk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, int *array, int *status);]],
		ffppre = [[int ffppre(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, float *array, int *status);]],
		ffpprd = [[int ffpprd(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, double *array, int *status);]],
		ffpprjj = [[int ffpprjj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, int *status);]],
		ffpprujj = [[int ffpprujj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, int *status);]],
		ffppru = [[int ffppru(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, int *status);]],
		ffpprn = [[int ffpprn(fitsfile *fptr, LONGLONG firstelem, LONGLONG nelem, int *status);]],
		ffppn = [[int ffppn(fitsfile *fptr, int datatype, LONGLONG firstelem, LONGLONG nelem, void *array, void *nulval, int *status);]],
		ffppnb = [[int ffppnb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, unsigned char nulval, int *status);]],
		ffppnsb = [[int ffppnsb(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, signed char *array, signed char nulval, int *status);]],
		ffppnui = [[int ffppnui(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, unsigned short nulval, int *status);]],
		ffppni = [[int ffppni(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, short *array, short nulval, int *status);]],
		ffppnj = [[int ffppnj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, long *array, long nulval, int *status);]],
		ffppnuj = [[int ffppnuj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, unsigned long nulval, int *status);]],
		ffppnuk = [[int ffppnuk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, unsigned int nulval, int *status);]],
		ffppnk = [[int ffppnk(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, int *array, int nulval, int *status);]],
		ffppne = [[int ffppne(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, float *array, float nulval, int *status);]],
		ffppnd = [[int ffppnd(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, double *array, double nulval, int *status);]],
		ffppnjj = [[int ffppnjj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, LONGLONG nulval, int *status);]],
		ffppnujj = [[int ffppnujj(fitsfile *fptr, long group, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, ULONGLONG nulval, int *status);]],
		ffp2db = [[int ffp2db(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned char *array, int *status);]],
		ffp2dsb = [[int ffp2dsb(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, signed char *array, int *status);]],
		ffp2dui = [[int ffp2dui(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned short *array, int *status);]],
		ffp2di = [[int ffp2di(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, short *array, int *status);]],
		ffp2duj = [[int ffp2duj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned long *array, int *status);]],
		ffp2dj = [[int ffp2dj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, long *array, int *status);]],
		ffp2duk = [[int ffp2duk(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, unsigned int *array, int *status);]],
		ffp2dk = [[int ffp2dk(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, int *array, int *status);]],
		ffp2de = [[int ffp2de(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, float *array, int *status);]],
		ffp2dd = [[int ffp2dd(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, double *array, int *status);]],
		ffp2djj = [[int ffp2djj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, LONGLONG *array, int *status);]],
		ffp2dujj = [[int ffp2dujj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG naxis1, LONGLONG naxis2, ULONGLONG *array, int *status);]],
		ffp3db = [[int ffp3db(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned char *array, int *status);]],
		ffp3dsb = [[int ffp3dsb(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, signed char *array, int *status);]],
		ffp3dui = [[int ffp3dui(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned short *array, int *status);]],
		ffp3di = [[int ffp3di(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, short *array, int *status);]],
		ffp3duj = [[int ffp3duj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned long *array, int *status);]],
		ffp3dj = [[int ffp3dj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, long *array, int *status);]],
		ffp3duk = [[int ffp3duk(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, unsigned int *array, int *status);]],
		ffp3dk = [[int ffp3dk(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, int *array, int *status);]],
		ffp3de = [[int ffp3de(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, float *array, int *status);]],
		ffp3dd = [[int ffp3dd(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, double *array, int *status);]],
		ffp3djj = [[int ffp3djj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, LONGLONG *array, int *status);]],
		ffp3dujj = [[int ffp3dujj(fitsfile *fptr, long group, LONGLONG ncols, LONGLONG nrows, LONGLONG naxis1, LONGLONG naxis2, LONGLONG naxis3, ULONGLONG *array, int *status);]],
		ffpss = [[int ffpss(fitsfile *fptr, int datatype, long *fpixel, long *lpixel, void *array, int *status);]],
		ffpssb = [[int ffpssb(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, unsigned char *array, int *status);]],
		ffpsssb = [[int ffpsssb(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, signed char *array, int *status);]],
		ffpssui = [[int ffpssui(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, unsigned short *array, int *status);]],
		ffpssi = [[int ffpssi(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, short *array, int *status);]],
		ffpssuj = [[int ffpssuj(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, unsigned long *array, int *status);]],
		ffpssj = [[int ffpssj(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, long *array, int *status);]],
		ffpssuk = [[int ffpssuk(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, unsigned int *array, int *status);]],
		ffpssk = [[int ffpssk(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, int *array, int *status);]],
		ffpsse = [[int ffpsse(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, float *array, int *status);]],
		ffpssd = [[int ffpssd(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, double *array, int *status);]],
		ffpssjj = [[int ffpssjj(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, LONGLONG *array, int *status);]],
		ffpssujj = [[int ffpssujj(fitsfile *fptr, long group, long naxis, long *naxes, long *fpixel, long *lpixel, ULONGLONG *array, int *status);]],
		ffpgpb = [[int ffpgpb(fitsfile *fptr, long group, long firstelem, long nelem, unsigned char *array, int *status);]],
		ffpgpsb = [[int ffpgpsb(fitsfile *fptr, long group, long firstelem, long nelem, signed char *array, int *status);]],
		ffpgpui = [[int ffpgpui(fitsfile *fptr, long group, long firstelem, long nelem, unsigned short *array, int *status);]],
		ffpgpi = [[int ffpgpi(fitsfile *fptr, long group, long firstelem, long nelem, short *array, int *status);]],
		ffpgpuj = [[int ffpgpuj(fitsfile *fptr, long group, long firstelem, long nelem, unsigned long *array, int *status);]],
		ffpgpj = [[int ffpgpj(fitsfile *fptr, long group, long firstelem, long nelem, long *array, int *status);]],
		ffpgpuk = [[int ffpgpuk(fitsfile *fptr, long group, long firstelem, long nelem, unsigned int *array, int *status);]],
		ffpgpk = [[int ffpgpk(fitsfile *fptr, long group, long firstelem, long nelem, int *array, int *status);]],
		ffpgpe = [[int ffpgpe(fitsfile *fptr, long group, long firstelem, long nelem, float *array, int *status);]],
		ffpgpd = [[int ffpgpd(fitsfile *fptr, long group, long firstelem, long nelem, double *array, int *status);]],
		ffpgpjj = [[int ffpgpjj(fitsfile *fptr, long group, long firstelem, long nelem, LONGLONG *array, int *status);]],
		ffpgpujj = [[int ffpgpujj(fitsfile *fptr, long group, long firstelem, long nelem, ULONGLONG *array, int *status);]],
		fits_iter_set_by_name = [[int fits_iter_set_by_name(iteratorCol *col, fitsfile *fptr, char *colname, int datatype, int iotype);]],
		fits_iter_set_by_num = [[int fits_iter_set_by_num(iteratorCol *col, fitsfile *fptr, int colnum, int datatype, int iotype);]],
		fits_iter_set_file = [[int fits_iter_set_file(iteratorCol *col, fitsfile *fptr);]],
		fits_iter_set_colname = [[int fits_iter_set_colname(iteratorCol *col, char *colname);]],
		fits_iter_set_colnum = [[int fits_iter_set_colnum(iteratorCol *col, int colnum);]],
		fits_iter_set_datatype = [[int fits_iter_set_datatype(iteratorCol *col, int datatype);]],
		fits_iter_set_iotype = [[int fits_iter_set_iotype(iteratorCol *col, int iotype);]],
		fits_iter_get_file = [[fitsfile * fits_iter_get_file(iteratorCol *col);]],
		fits_iter_get_colname = [[char * fits_iter_get_colname(iteratorCol *col);]],
		fits_iter_get_colnum = [[int fits_iter_get_colnum(iteratorCol *col);]],
		fits_iter_get_datatype = [[int fits_iter_get_datatype(iteratorCol *col);]],
		fits_iter_get_iotype = [[int fits_iter_get_iotype(iteratorCol *col);]],
		fits_iter_get_array = [[void * fits_iter_get_array(iteratorCol *col);]],
		fits_iter_get_tlmin = [[long fits_iter_get_tlmin(iteratorCol *col);]],
		fits_iter_get_tlmax = [[long fits_iter_get_tlmax(iteratorCol *col);]],
		fits_iter_get_repeat = [[long fits_iter_get_repeat(iteratorCol *col);]],
		fits_iter_get_tunit = [[char * fits_iter_get_tunit(iteratorCol *col);]],
		fits_iter_get_tdisp = [[char * fits_iter_get_tdisp(iteratorCol *col);]],
		ffiter = [[int ffiter(int ncols, iteratorCol *data, long offset, long nPerLoop, int (*workFn)(long totaln, long offset, long firstn, long nvalues, int narrays, iteratorCol *data, void *userPointer), void *userPointer, int *status);]],
		ffpcl = [[int ffpcl(fitsfile *fptr, int datatype, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, void *array, int *status);]],
		ffpcls = [[int ffpcls(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char **array, int *status);]],
		ffpcll = [[int ffpcll(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char *array, int *status);]],
		ffpclb = [[int ffpclb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, int *status);]],
		ffpclsb = [[int ffpclsb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, signed char *array, int *status);]],
		ffpclui = [[int ffpclui(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, int *status);]],
		ffpcli = [[int ffpcli(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, short *array, int *status);]],
		ffpcluj = [[int ffpcluj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, int *status);]],
		ffpclj = [[int ffpclj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, long *array, int *status);]],
		ffpcluk = [[int ffpcluk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, int *status);]],
		ffpclk = [[int ffpclk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, int *array, int *status);]],
		ffpcle = [[int ffpcle(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float *array, int *status);]],
		ffpcld = [[int ffpcld(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double *array, int *status);]],
		ffpclc = [[int ffpclc(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float *array, int *status);]],
		ffpclm = [[int ffpclm(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double *array, int *status);]],
		ffpclu = [[int ffpclu(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, int *status);]],
		ffprwu = [[int ffprwu(fitsfile *fptr, LONGLONG firstrow, LONGLONG nrows, int *status);]],
		ffpcljj = [[int ffpcljj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, int *status);]],
		ffpclujj = [[int ffpclujj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, int *status);]],
		ffpclx = [[int ffpclx(fitsfile *fptr, int colnum, LONGLONG frow, long fbit, long nbit, char *larray, int *status);]],
		ffpcn = [[int ffpcn(fitsfile *fptr, int datatype, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, void *array, void *nulval, int *status);]],
		ffpcns = [[int ffpcns(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char **array, char *nulvalue, int *status);]],
		ffpcnl = [[int ffpcnl(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, char *array, char nulvalue, int *status);]],
		ffpcnb = [[int ffpcnb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned char *array, unsigned char nulvalue, int *status);]],
		ffpcnsb = [[int ffpcnsb(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, signed char *array, signed char nulvalue, int *status);]],
		ffpcnui = [[int ffpcnui(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned short *array, unsigned short nulvalue, int *status);]],
		ffpcni = [[int ffpcni(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, short *array, short nulvalue, int *status);]],
		ffpcnuj = [[int ffpcnuj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned long *array, unsigned long nulvalue, int *status);]],
		ffpcnj = [[int ffpcnj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, long *array, long nulvalue, int *status);]],
		ffpcnuk = [[int ffpcnuk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, unsigned int *array, unsigned int nulvalue, int *status);]],
		ffpcnk = [[int ffpcnk(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, int *array, int nulvalue, int *status);]],
		ffpcne = [[int ffpcne(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, float *array, float nulvalue, int *status);]],
		ffpcnd = [[int ffpcnd(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, double *array, double nulvalue, int *status);]],
		ffpcnjj = [[int ffpcnjj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, LONGLONG *array, LONGLONG nulvalue, int *status);]],
		ffpcnujj = [[int ffpcnujj(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem, LONGLONG nelem, ULONGLONG *array, ULONGLONG nulvalue, int *status);]],
		ffptbb = [[int ffptbb(fitsfile *fptr, LONGLONG firstrow, LONGLONG firstchar, LONGLONG nchars, unsigned char *values, int *status);]],
		ffirow = [[int ffirow(fitsfile *fptr, LONGLONG firstrow, LONGLONG nrows, int *status);]],
		ffdrow = [[int ffdrow(fitsfile *fptr, LONGLONG firstrow, LONGLONG nrows, int *status);]],
		ffdrrg = [[int ffdrrg(fitsfile *fptr, char *ranges, int *status);]],
		ffdrws = [[int ffdrws(fitsfile *fptr, long *rownum, long nrows, int *status);]],
		ffdrwsll = [[int ffdrwsll(fitsfile *fptr, LONGLONG *rownum, LONGLONG nrows, int *status);]],
		fficol = [[int fficol(fitsfile *fptr, int numcol, char *ttype, char *tform, int *status);]],
		fficls = [[int fficls(fitsfile *fptr, int firstcol, int ncols, char **ttype, char **tform, int *status);]],
		ffmvec = [[int ffmvec(fitsfile *fptr, int colnum, LONGLONG newveclen, int *status);]],
		ffdcol = [[int ffdcol(fitsfile *fptr, int numcol, int *status);]],
		ffcpcl = [[int ffcpcl(fitsfile *infptr, fitsfile *outfptr, int incol, int outcol, int create_col, int *status);]],
		ffccls = [[int ffccls(fitsfile *infptr, fitsfile *outfptr, int incol, int outcol, int ncols, int create_col, int *status);]],
		ffcprw = [[int ffcprw(fitsfile *infptr, fitsfile *outfptr, LONGLONG firstrow, LONGLONG nrows, int *status);]],
		ffcpht = [[int ffcpht(fitsfile *infptr, fitsfile *outfptr, LONGLONG firstrow, LONGLONG nrows, int *status);]],
		ffgics = [[int ffgics(fitsfile *fptr, double *xrval, double *yrval, double *xrpix, double *yrpix, double *xinc, double *yinc, double *rot, char *type, int *status);]],
		ffgicsa = [[int ffgicsa(fitsfile *fptr, char version, double *xrval, double *yrval, double *xrpix, double *yrpix, double *xinc, double *yinc, double *rot, char *type, int *status);]],
		ffgtcs = [[int ffgtcs(fitsfile *fptr, int xcol, int ycol, double *xrval, double *yrval, double *xrpix, double *yrpix, double *xinc, double *yinc, double *rot, char *type, int *status);]],
		ffwldp = [[int ffwldp(double xpix, double ypix, double xref, double yref, double xrefpix, double yrefpix, double xinc, double yinc, double rot, char *type, double *xpos, double *ypos, int *status);]],
		ffxypx = [[int ffxypx(double xpos, double ypos, double xref, double yref, double xrefpix, double yrefpix, double xinc, double yinc, double rot, char *type, double *xpix, double *ypix, int *status);]],
		ffgiwcs = [[int ffgiwcs(fitsfile *fptr, char **header, int *status);]],
		ffgtwcs = [[int ffgtwcs(fitsfile *fptr, int xcol, int ycol, char **header, int *status);]],
		fftexp = [[int fftexp(fitsfile *fptr, char *expr, int maxdim, int *datatype, long *nelem, int *naxis, long *naxes, int *status);]],
		fffrow = [[int fffrow(fitsfile *infptr, char *expr, long firstrow, long nrows, long *n_good_rows, char *row_status, int *status);]],
		ffffrw = [[int ffffrw(fitsfile *fptr, char *expr, long *rownum, int *status);]],
		fffrwc = [[int fffrwc(fitsfile *fptr, char *expr, char *timeCol, char *parCol, char *valCol, long ntimes, double *times, char *time_status, int *status);]],
		ffsrow = [[int ffsrow(fitsfile *infptr, fitsfile *outfptr, char *expr, int *status);]],
		ffcrow = [[int ffcrow(fitsfile *fptr, int datatype, char *expr, long firstrow, long nelements, void *nulval, void *array, int *anynul, int *status);]],
		ffcalc_rng = [[int ffcalc_rng(fitsfile *infptr, char *expr, fitsfile *outfptr, char *parName, char *parInfo, int nRngs, long *start, long *end, int *status);]],
		ffcalc = [[int ffcalc(fitsfile *infptr, char *expr, fitsfile *outfptr, char *parName, char *parInfo, int *status);]],
		ffhist = [[int ffhist(fitsfile **fptr, char *outfile, int imagetype, int naxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], double weightin, char wtcol[71], int recip, char *rowselect, int *status);]],
		ffhist2 = [[int ffhist2(fitsfile **fptr, char *outfile, int imagetype, int naxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], double weightin, char wtcol[71], int recip, char *rowselect, int *status);]],
		ffhist3 = [[fitsfile * ffhist3(fitsfile *fptr, char *outfile, int imagetype, int naxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], double weightin, char wtcol[71], int recip, char *selectrow, int *status);]],
		fits_select_image_section = [[int fits_select_image_section(fitsfile **fptr, char *outfile, char *imagesection, int *status);]],
		fits_copy_image_section = [[int fits_copy_image_section(fitsfile *infptr, fitsfile *outfile, char *imagesection, int *status);]],
		fits_calc_binning = [[int fits_calc_binning(fitsfile *fptr, int naxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], int *colnum, long *haxes, float *amin, float *amax, float *binsize, int *status);]],
		fits_calc_binningd = [[int fits_calc_binningd(fitsfile *fptr, int naxis, char colname[4][71], double *minin, double *maxin, double *binsizein, char minname[4][71], char maxname[4][71], char binname[4][71], int *colnum, long *haxes, double *amin, double *amax, double *binsize, int *status);]],
		fits_write_keys_histo = [[int fits_write_keys_histo(fitsfile *fptr, fitsfile *histptr, int naxis, int *colnum, int *status);]],
		fits_rebin_wcs = [[int fits_rebin_wcs(fitsfile *fptr, int naxis, float *amin, float *binsize, int *status);]],
		fits_rebin_wcsd = [[int fits_rebin_wcsd(fitsfile *fptr, int naxis, double *amin, double *binsize, int *status);]],
		fits_make_hist = [[int fits_make_hist(fitsfile *fptr, fitsfile *histptr, int bitpix,int naxis, long *naxes, int *colnum, float *amin, float *amax, float *binsize, float weight, int wtcolnum, int recip, char *selectrow, int *status);]],
		fits_make_histd = [[int fits_make_histd(fitsfile *fptr, fitsfile *histptr, int bitpix,int naxis, long *naxes, int *colnum, double *amin, double *amax, double *binsize, double weight, int wtcolnum, int recip, char *selectrow, int *status);]],
		fits_pixel_filter = [[int fits_pixel_filter(PixelFilter * filter, int * status);]],
		ffgtcr = [[int ffgtcr(fitsfile *fptr, char *grpname, int grouptype, int *status);]],
		ffgtis = [[int ffgtis(fitsfile *fptr, char *grpname, int grouptype, int *status);]],
		ffgtch = [[int ffgtch(fitsfile *gfptr, int grouptype, int *status);]],
		ffgtrm = [[int ffgtrm(fitsfile *gfptr, int rmopt, int *status);]],
		ffgtcp = [[int ffgtcp(fitsfile *infptr, fitsfile *outfptr, int cpopt, int *status);]],
		ffgtmg = [[int ffgtmg(fitsfile *infptr, fitsfile *outfptr, int mgopt, int *status);]],
		ffgtcm = [[int ffgtcm(fitsfile *gfptr, int cmopt, int *status);]],
		ffgtvf = [[int ffgtvf(fitsfile *gfptr, long *firstfailed, int *status);]],
		ffgtop = [[int ffgtop(fitsfile *mfptr,int group,fitsfile **gfptr,int *status);]],
		ffgtam = [[int ffgtam(fitsfile *gfptr, fitsfile *mfptr, int hdupos, int *status);]],
		ffgtnm = [[int ffgtnm(fitsfile *gfptr, long *nmembers, int *status);]],
		ffgmng = [[int ffgmng(fitsfile *mfptr, long *nmembers, int *status);]],
		ffgmop = [[int ffgmop(fitsfile *gfptr, long member, fitsfile **mfptr, int *status);]],
		ffgmcp = [[int ffgmcp(fitsfile *gfptr, fitsfile *mfptr, long member, int cpopt, int *status);]],
		ffgmtf = [[int ffgmtf(fitsfile *infptr, fitsfile *outfptr, long member, int tfopt, int *status);]],
		ffgmrm = [[int ffgmrm(fitsfile *fptr, long member, int rmopt, int *status);]],
		fits_execute_template = [[int fits_execute_template(fitsfile *ff, char *ngp_template, int *status);]],
		fits_img_stats_short = [[int fits_img_stats_short(short *array,long nx, long ny, int nullcheck, short nullvalue,long *ngoodpix, short *minvalue, short *maxvalue, double *mean, double *sigma, double *noise1, double *noise2, double *noise3, double *noise5, int *status);]],
		fits_img_stats_int = [[int fits_img_stats_int(int *array,long nx, long ny, int nullcheck, int nullvalue,long *ngoodpix, int *minvalue, int *maxvalue, double *mean, double *sigma, double *noise1, double *noise2, double *noise3, double *noise5, int *status);]],
		fits_img_stats_float = [[int fits_img_stats_float(float *array, long nx, long ny, int nullcheck, float nullvalue,long *ngoodpix, float *minvalue, float *maxvalue, double *mean, double *sigma, double *noise1, double *noise2, double *noise3, double *noise5, int *status);]],
		fits_set_compression_type = [[int fits_set_compression_type(fitsfile *fptr, int ctype, int *status);]],
		fits_set_tile_dim = [[int fits_set_tile_dim(fitsfile *fptr, int ndim, long *dims, int *status);]],
		fits_set_noise_bits = [[int fits_set_noise_bits(fitsfile *fptr, int noisebits, int *status);]],
		fits_set_quantize_level = [[int fits_set_quantize_level(fitsfile *fptr, float qlevel, int *status);]],
		fits_set_hcomp_scale = [[int fits_set_hcomp_scale(fitsfile *fptr, float scale, int *status);]],
		fits_set_hcomp_smooth = [[int fits_set_hcomp_smooth(fitsfile *fptr, int smooth, int *status);]],
		fits_set_quantize_method = [[int fits_set_quantize_method(fitsfile *fptr, int method, int *status);]],
		fits_set_quantize_dither = [[int fits_set_quantize_dither(fitsfile *fptr, int dither, int *status);]],
		fits_set_dither_seed = [[int fits_set_dither_seed(fitsfile *fptr, int seed, int *status);]],
		fits_set_dither_offset = [[int fits_set_dither_offset(fitsfile *fptr, int offset, int *status);]],
		fits_set_lossy_int = [[int fits_set_lossy_int(fitsfile *fptr, int lossy_int, int *status);]],
		fits_set_huge_hdu = [[int fits_set_huge_hdu(fitsfile *fptr, int huge, int *status);]],
		fits_set_compression_pref = [[int fits_set_compression_pref(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_get_compression_type = [[int fits_get_compression_type(fitsfile *fptr, int *ctype, int *status);]],
		fits_get_tile_dim = [[int fits_get_tile_dim(fitsfile *fptr, int ndim, long *dims, int *status);]],
		fits_get_quantize_level = [[int fits_get_quantize_level(fitsfile *fptr, float *qlevel, int *status);]],
		fits_get_noise_bits = [[int fits_get_noise_bits(fitsfile *fptr, int *noisebits, int *status);]],
		fits_get_hcomp_scale = [[int fits_get_hcomp_scale(fitsfile *fptr, float *scale, int *status);]],
		fits_get_hcomp_smooth = [[int fits_get_hcomp_smooth(fitsfile *fptr, int *smooth, int *status);]],
		fits_get_dither_seed = [[int fits_get_dither_seed(fitsfile *fptr, int *seed, int *status);]],
		fits_img_compress = [[int fits_img_compress(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_comp_img = [[int fits_comp_img(fitsfile *infptr, fitsfile *outfptr, int compress_type, long *tilesize, int parm1, int parm2, int *status);]],
		fits_is_compressed_image = [[int fits_is_compressed_image(fitsfile *fptr, int *status);]],
		fits_is_reentrant = [[int fits_is_reentrant();]],
		fits_decomp_img = [[int fits_decomp_img(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_img_decompress_header = [[int fits_img_decompress_header(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_img_decompress = [[int fits_img_decompress(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_hcompress = [[int fits_hcompress(int *a, int nx, int ny, int scale, char *output, long *nbytes, int *status);]],
		fits_hcompress64 = [[int fits_hcompress64(LONGLONG *a, int nx, int ny, int scale, char *output, long *nbytes, int *status);]],
		fits_hdecompress = [[int fits_hdecompress(unsigned char *input, int smooth, int *a, int *nx, int *ny, int *scale, int *status);]],
		fits_hdecompress64 = [[int fits_hdecompress64(unsigned char *input, int smooth, LONGLONG *a, int *nx, int *ny, int *scale, int *status);]],
		fits_compress_table = [[int fits_compress_table(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		fits_uncompress_table = [[int fits_uncompress_table(fitsfile *infptr, fitsfile *outfptr, int *status);]],
		ffihtps = [[int ffihtps();]],
		ffchtps = [[int ffchtps();]],
		ffvhtps = [[void ffvhtps(int flag);]],
		ffshdwn = [[void ffshdwn(int flag);]],
		ffgtmo = [[int ffgtmo();]],
		ffstmo = [[int ffstmo(int sec, int *status);]],

		-- since macro functions are the weak point of my binding code generator,
		-- here's the fitsio longnam.h file contents manually:
		
		fits_parse_input_url = function() return wrapper.ffiurl end,
		fits_parse_input_filename = function() return wrapper.ffifile end,
		fits_parse_rootname = function() return wrapper.ffrtnm end,
		fits_file_exists = function() return wrapper.ffexist end,
		fits_parse_extspec = function() return wrapper.ffexts end,
		fits_parse_extnum = function() return wrapper.ffextn end,
		fits_parse_binspec = function() return wrapper.ffbins end,
		fits_parse_binrange = function() return wrapper.ffbinr end,
		fits_parse_range = function() return wrapper.ffrwrg end,
		fits_parse_rangell = function() return wrapper.ffrwrgll end,
		fits_open_memfile = function() return wrapper.ffomem end,
		fits_open_data = function() return wrapper.ffdopn end,
		fits_open_extlist = function() return wrapper.ffeopn end,
		fits_open_table = function() return wrapper.fftopn end,
		fits_open_image = function() return wrapper.ffiopn end,
		fits_open_diskfile = function() return wrapper.ffdkopn end,
		fits_reopen_file = function() return wrapper.ffreopen end,
		fits_create_file = function() return wrapper.ffinit end,
		fits_create_diskfile = function() return wrapper.ffdkinit end,
		fits_create_memfile = function() return wrapper.ffimem end,
		fits_create_template = function() return wrapper.fftplt end,
		fits_flush_file = function() return wrapper.ffflus end,
		fits_flush_buffer = function() return wrapper.ffflsh end,
		fits_close_file = function() return wrapper.ffclos end,
		fits_delete_file = function() return wrapper.ffdelt end,
		fits_file_name = function() return wrapper.ffflnm end,
		fits_file_mode = function() return wrapper.ffflmd end,
		fits_url_type = function() return wrapper.ffurlt end,
		fits_get_version = function() return wrapper.ffvers end,
		fits_uppercase = function() return wrapper.ffupch end,
		fits_get_errstatus = function() return wrapper.ffgerr end,
		fits_write_errmsg = function() return wrapper.ffpmsg end,
		fits_write_errmark = function() return wrapper.ffpmrk end,
		fits_read_errmsg = function() return wrapper.ffgmsg end,
		fits_clear_errmsg = function() return wrapper.ffcmsg end,
		fits_clear_errmark = function() return wrapper.ffcmrk end,
		fits_report_error = function() return wrapper.ffrprt end,
		fits_compare_str = function() return wrapper.ffcmps end,
		fits_test_keyword = function() return wrapper.fftkey end,
		fits_test_record = function() return wrapper.fftrec end,
		fits_null_check = function() return wrapper.ffnchk end,
		fits_make_keyn = function() return wrapper.ffkeyn end,
		fits_make_nkey = function() return wrapper.ffnkey end,
		fits_make_key = function() return wrapper.ffmkky end,
		fits_get_keyclass = function() return wrapper.ffgkcl end,
		fits_get_keytype = function() return wrapper.ffdtyp end,
		fits_get_inttype = function() return wrapper.ffinttyp end,
		fits_parse_value = function() return wrapper.ffpsvc end,
		fits_get_keyname = function() return wrapper.ffgknm end,
		fits_parse_template = function() return wrapper.ffgthd end,
		fits_ascii_tform = function() return wrapper.ffasfm end,
		fits_binary_tform = function() return wrapper.ffbnfm end,
		fits_binary_tformll = function() return wrapper.ffbnfmll end,
		fits_get_tbcol = function() return wrapper.ffgabc end,
		fits_get_rowsize = function() return wrapper.ffgrsz end,
		fits_get_col_display_width = function() return wrapper.ffgcdw end,
		fits_write_record = function() return wrapper.ffprec end,
		fits_write_key = function() return wrapper.ffpky end,
		fits_write_key_unit = function() return wrapper.ffpunt end,
		fits_write_comment = function() return wrapper.ffpcom end,
		fits_write_history = function() return wrapper.ffphis end,
		fits_write_date = function() return wrapper.ffpdat end,
		fits_get_system_time = function() return wrapper.ffgstm end,
		fits_get_system_date = function() return wrapper.ffgsdt end,
		fits_date2str = function() return wrapper.ffdt2s end,
		fits_time2str = function() return wrapper.fftm2s end,
		fits_str2date = function() return wrapper.ffs2dt end,
		fits_str2time = function() return wrapper.ffs2tm end,
		fits_write_key_longstr = function() return wrapper.ffpkls end,
		fits_write_key_longwarn = function() return wrapper.ffplsw end,
		fits_write_key_null = function() return wrapper.ffpkyu end,
		fits_write_key_str = function() return wrapper.ffpkys end,
		fits_write_key_log = function() return wrapper.ffpkyl end,
		fits_write_key_lng = function() return wrapper.ffpkyj end,
		fits_write_key_ulng = function() return wrapper.ffpkyuj end,
		fits_write_key_fixflt = function() return wrapper.ffpkyf end,
		fits_write_key_flt = function() return wrapper.ffpkye end,
		fits_write_key_fixdbl = function() return wrapper.ffpkyg end,
		fits_write_key_dbl = function() return wrapper.ffpkyd end,
		fits_write_key_fixcmp = function() return wrapper.ffpkfc end,
		fits_write_key_cmp = function() return wrapper.ffpkyc end,
		fits_write_key_fixdblcmp = function() return wrapper.ffpkfm end,
		fits_write_key_dblcmp = function() return wrapper.ffpkym end,
		fits_write_key_triple = function() return wrapper.ffpkyt end,
		fits_write_tdim = function() return wrapper.ffptdm end,
		fits_write_tdimll = function() return wrapper.ffptdmll end,
		fits_write_keys_str = function() return wrapper.ffpkns end,
		fits_write_keys_log = function() return wrapper.ffpknl end,
		fits_write_keys_lng = function() return wrapper.ffpknj end,
		fits_write_keys_fixflt = function() return wrapper.ffpknf end,
		fits_write_keys_flt = function() return wrapper.ffpkne end,
		fits_write_keys_fixdbl = function() return wrapper.ffpkng end,
		fits_write_keys_dbl = function() return wrapper.ffpknd end,
		fits_copy_key = function() return wrapper.ffcpky end,
		fits_write_imghdr = function() return wrapper.ffphps end,
		fits_write_imghdrll = function() return wrapper.ffphpsll end,
		fits_write_grphdr = function() return wrapper.ffphpr end,
		fits_write_grphdrll = function() return wrapper.ffphprll end,
		fits_write_atblhdr = function() return wrapper.ffphtb end,
		fits_write_btblhdr = function() return wrapper.ffphbn end,
		fits_write_exthdr = function() return wrapper.ffphext end,
		fits_write_key_template = function() return wrapper.ffpktp end,
		fits_get_hdrspace = function() return wrapper.ffghsp end,
		fits_get_hdrpos = function() return wrapper.ffghps end,
		fits_movabs_key = function() return wrapper.ffmaky end,
		fits_movrel_key = function() return wrapper.ffmrky end,
		fits_find_nextkey = function() return wrapper.ffgnxk end,
		fits_read_record = function() return wrapper.ffgrec end,
		fits_read_card = function() return wrapper.ffgcrd end,
		fits_read_str = function() return wrapper.ffgstr end,
		fits_read_key_unit = function() return wrapper.ffgunt end,
		fits_read_keyn = function() return wrapper.ffgkyn end,
		fits_read_key = function() return wrapper.ffgky end,
		fits_read_keyword = function() return wrapper.ffgkey end,
		fits_read_key_str = function() return wrapper.ffgkys end,
		fits_read_key_log = function() return wrapper.ffgkyl end,
		fits_read_key_lng = function() return wrapper.ffgkyj end,
		fits_read_key_lnglng = function() return wrapper.ffgkyjj end,
		fits_read_key_ulnglng = function() return wrapper.ffgkyujj end,
		fits_read_key_flt = function() return wrapper.ffgkye end,
		fits_read_key_dbl = function() return wrapper.ffgkyd end,
		fits_read_key_cmp = function() return wrapper.ffgkyc end,
		fits_read_key_dblcmp = function() return wrapper.ffgkym end,
		fits_read_key_triple = function() return wrapper.ffgkyt end,
		fits_get_key_strlen = function() return wrapper.ffgksl end,
		fits_read_key_longstr = function() return wrapper.ffgkls end,
		fits_read_string_key = function() return wrapper.ffgsky end,
		fits_free_memory = function() return wrapper.fffree end,
		fits_read_tdim = function() return wrapper.ffgtdm end,
		fits_read_tdimll = function() return wrapper.ffgtdmll end,
		fits_decode_tdim = function() return wrapper.ffdtdm end,
		fits_decode_tdimll = function() return wrapper.ffdtdmll end,
		fits_read_keys_str = function() return wrapper.ffgkns end,
		fits_read_keys_log = function() return wrapper.ffgknl end,
		fits_read_keys_lng = function() return wrapper.ffgknj end,
		fits_read_keys_lnglng = function() return wrapper.ffgknjj end,
		fits_read_keys_flt = function() return wrapper.ffgkne end,
		fits_read_keys_dbl = function() return wrapper.ffgknd end,
		fits_read_imghdr = function() return wrapper.ffghpr end,
		fits_read_imghdrll = function() return wrapper.ffghprll end,
		fits_read_atblhdr = function() return wrapper.ffghtb end,
		fits_read_btblhdr = function() return wrapper.ffghbn end,
		fits_read_atblhdrll = function() return wrapper.ffghtbll end,
		fits_read_btblhdrll = function() return wrapper.ffghbnll end,
		fits_hdr2str = function() return wrapper.ffhdr2str end,
		fits_convert_hdr2str = function() return wrapper.ffcnvthdr2str end,
		fits_update_card = function() return wrapper.ffucrd end,
		fits_update_key = function() return wrapper.ffuky end,
		fits_update_key_null = function() return wrapper.ffukyu end,
		fits_update_key_str = function() return wrapper.ffukys end,
		fits_update_key_longstr = function() return wrapper.ffukls end,
		fits_update_key_log = function() return wrapper.ffukyl end,
		fits_update_key_lng = function() return wrapper.ffukyj end,
		fits_update_key_fixflt = function() return wrapper.ffukyf end,
		fits_update_key_flt = function() return wrapper.ffukye end,
		fits_update_key_fixdbl = function() return wrapper.ffukyg end,
		fits_update_key_dbl = function() return wrapper.ffukyd end,
		fits_update_key_fixcmp = function() return wrapper.ffukfc end,
		fits_update_key_cmp = function() return wrapper.ffukyc end,
		fits_update_key_fixdblcmp = function() return wrapper.ffukfm end,
		fits_update_key_dblcmp = function() return wrapper.ffukym end,
		fits_modify_record = function() return wrapper.ffmrec end,
		fits_modify_card = function() return wrapper.ffmcrd end,
		fits_modify_name = function() return wrapper.ffmnam end,
		fits_modify_comment = function() return wrapper.ffmcom end,
		fits_modify_key_null = function() return wrapper.ffmkyu end,
		fits_modify_key_str = function() return wrapper.ffmkys end,
		fits_modify_key_longstr = function() return wrapper.ffmkls end,
		fits_modify_key_log = function() return wrapper.ffmkyl end,
		fits_modify_key_lng = function() return wrapper.ffmkyj end,
		fits_modify_key_fixflt = function() return wrapper.ffmkyf end,
		fits_modify_key_flt = function() return wrapper.ffmkye end,
		fits_modify_key_fixdbl = function() return wrapper.ffmkyg end,
		fits_modify_key_dbl = function() return wrapper.ffmkyd end,
		fits_modify_key_fixcmp = function() return wrapper.ffmkfc end,
		fits_modify_key_cmp = function() return wrapper.ffmkyc end,
		fits_modify_key_fixdblcmp = function() return wrapper.ffmkfm end,
		fits_modify_key_dblcmp = function() return wrapper.ffmkym end,
		fits_insert_record = function() return wrapper.ffirec end,
		fits_insert_card = function() return wrapper.ffikey end,
		fits_insert_key_null = function() return wrapper.ffikyu end,
		fits_insert_key_str = function() return wrapper.ffikys end,
		fits_insert_key_longstr = function() return wrapper.ffikls end,
		fits_insert_key_log = function() return wrapper.ffikyl end,
		fits_insert_key_lng = function() return wrapper.ffikyj end,
		fits_insert_key_fixflt = function() return wrapper.ffikyf end,
		fits_insert_key_flt = function() return wrapper.ffikye end,
		fits_insert_key_fixdbl = function() return wrapper.ffikyg end,
		fits_insert_key_dbl = function() return wrapper.ffikyd end,
		fits_insert_key_fixcmp = function() return wrapper.ffikfc end,
		fits_insert_key_cmp = function() return wrapper.ffikyc end,
		fits_insert_key_fixdblcmp = function() return wrapper.ffikfm end,
		fits_insert_key_dblcmp = function() return wrapper.ffikym end,
		fits_delete_key = function() return wrapper.ffdkey end,
		fits_delete_str = function() return wrapper.ffdstr end,
		fits_delete_record = function() return wrapper.ffdrec end,
		fits_get_hdu_num = function() return wrapper.ffghdn end,
		fits_get_hdu_type = function() return wrapper.ffghdt end,
		fits_get_hduaddr = function() return wrapper.ffghad end,
		fits_get_hduaddrll = function() return wrapper.ffghadll end,
		fits_get_hduoff = function() return wrapper.ffghof end,
		fits_get_img_param = function() return wrapper.ffgipr end,
		fits_get_img_paramll = function() return wrapper.ffgiprll end,
		fits_get_img_type = function() return wrapper.ffgidt end,
		fits_get_img_equivtype = function() return wrapper.ffgiet end,
		fits_get_img_dim = function() return wrapper.ffgidm end,
		fits_get_img_size = function() return wrapper.ffgisz end,
		fits_get_img_sizell = function() return wrapper.ffgiszll end,
		fits_movabs_hdu = function() return wrapper.ffmahd end,
		fits_movrel_hdu = function() return wrapper.ffmrhd end,
		fits_movnam_hdu = function() return wrapper.ffmnhd end,
		fits_get_num_hdus = function() return wrapper.ffthdu end,
		fits_create_img = function() return wrapper.ffcrim end,
		fits_create_imgll = function() return wrapper.ffcrimll end,
		fits_create_tbl = function() return wrapper.ffcrtb end,
		fits_create_hdu = function() return wrapper.ffcrhd end,
		fits_insert_img = function() return wrapper.ffiimg end,
		fits_insert_imgll = function() return wrapper.ffiimgll end,
		fits_insert_atbl = function() return wrapper.ffitab end,
		fits_insert_btbl = function() return wrapper.ffibin end,
		fits_resize_img = function() return wrapper.ffrsim end,
		fits_resize_imgll = function() return wrapper.ffrsimll end,
		fits_delete_hdu = function() return wrapper.ffdhdu end,
		fits_copy_hdu = function() return wrapper.ffcopy end,
		fits_copy_file = function() return wrapper.ffcpfl end,
		fits_copy_header = function() return wrapper.ffcphd end,
		fits_copy_hdutab = function() return wrapper.ffcpht end,
		fits_copy_data = function() return wrapper.ffcpdt end,
		fits_write_hdu = function() return wrapper.ffwrhdu end,
		fits_set_hdustruc = function() return wrapper.ffrdef end,
		fits_set_hdrsize = function() return wrapper.ffhdef end,
		fits_write_theap = function() return wrapper.ffpthp end,
		fits_encode_chksum = function() return wrapper.ffesum end,
		fits_decode_chksum = function() return wrapper.ffdsum end,
		fits_write_chksum = function() return wrapper.ffpcks end,
		fits_update_chksum = function() return wrapper.ffupck end,
		fits_verify_chksum = function() return wrapper.ffvcks end,
		fits_get_chksum = function() return wrapper.ffgcks end,
		fits_set_bscale = function() return wrapper.ffpscl end,
		fits_set_tscale = function() return wrapper.fftscl end,
		fits_set_imgnull = function() return wrapper.ffpnul end,
		fits_set_btblnull = function() return wrapper.fftnul end,
		fits_set_atblnull = function() return wrapper.ffsnul end,
		fits_get_colnum = function() return wrapper.ffgcno end,
		fits_get_colname = function() return wrapper.ffgcnn end,
		fits_get_coltype = function() return wrapper.ffgtcl end,
		fits_get_coltypell = function() return wrapper.ffgtclll end,
		fits_get_eqcoltype = function() return wrapper.ffeqty end,
		fits_get_eqcoltypell = function() return wrapper.ffeqtyll end,
		fits_get_num_rows = function() return wrapper.ffgnrw end,
		fits_get_num_rowsll = function() return wrapper.ffgnrwll end,
		fits_get_num_cols = function() return wrapper.ffgncl end,
		fits_get_acolparms = function() return wrapper.ffgacl end,
		fits_get_bcolparms = function() return wrapper.ffgbcl end,
		fits_get_bcolparmsll = function() return wrapper.ffgbclll end,
		fits_iterate_data = function() return wrapper.ffiter end,
		fits_read_grppar_byt = function() return wrapper.ffggpb end,
		fits_read_grppar_sbyt = function() return wrapper.ffggpsb end,
		fits_read_grppar_usht = function() return wrapper.ffggpui end,
		fits_read_grppar_ulng = function() return wrapper.ffggpuj end,
		fits_read_grppar_ulnglng = function() return wrapper.ffggpujj end,
		fits_read_grppar_sht = function() return wrapper.ffggpi end,
		fits_read_grppar_lng = function() return wrapper.ffggpj end,
		fits_read_grppar_lnglng = function() return wrapper.ffggpjj end,
		fits_read_grppar_int = function() return wrapper.ffggpk end,
		fits_read_grppar_uint = function() return wrapper.ffggpuk end,
		fits_read_grppar_flt = function() return wrapper.ffggpe end,
		fits_read_grppar_dbl = function() return wrapper.ffggpd end,
		fits_read_pix = function() return wrapper.ffgpxv end,
		fits_read_pixll = function() return wrapper.ffgpxvll end,
		fits_read_pixnull = function() return wrapper.ffgpxf end,
		fits_read_pixnullll = function() return wrapper.ffgpxfll end,
		fits_read_img = function() return wrapper.ffgpv end,
		fits_read_imgnull = function() return wrapper.ffgpf end,
		fits_read_img_byt = function() return wrapper.ffgpvb end,
		fits_read_img_sbyt = function() return wrapper.ffgpvsb end,
		fits_read_img_usht = function() return wrapper.ffgpvui end,
		fits_read_img_ulng = function() return wrapper.ffgpvuj end,
		fits_read_img_sht = function() return wrapper.ffgpvi end,
		fits_read_img_lng = function() return wrapper.ffgpvj end,
		fits_read_img_ulnglng = function() return wrapper.ffgpvujj end,
		fits_read_img_lnglng = function() return wrapper.ffgpvjj end,
		fits_read_img_uint = function() return wrapper.ffgpvuk end,
		fits_read_img_int = function() return wrapper.ffgpvk end,
		fits_read_img_flt = function() return wrapper.ffgpve end,
		fits_read_img_dbl = function() return wrapper.ffgpvd end,
		fits_read_imgnull_byt = function() return wrapper.ffgpfb end,
		fits_read_imgnull_sbyt = function() return wrapper.ffgpfsb end,
		fits_read_imgnull_usht = function() return wrapper.ffgpfui end,
		fits_read_imgnull_ulng = function() return wrapper.ffgpfuj end,
		fits_read_imgnull_sht = function() return wrapper.ffgpfi end,
		fits_read_imgnull_lng = function() return wrapper.ffgpfj end,
		fits_read_imgnull_ulnglng = function() return wrapper.ffgpfujj end,
		fits_read_imgnull_lnglng = function() return wrapper.ffgpfjj end,
		fits_read_imgnull_uint = function() return wrapper.ffgpfuk end,
		fits_read_imgnull_int = function() return wrapper.ffgpfk end,
		fits_read_imgnull_flt = function() return wrapper.ffgpfe end,
		fits_read_imgnull_dbl = function() return wrapper.ffgpfd end,
		fits_read_2d_byt = function() return wrapper.ffg2db end,
		fits_read_2d_sbyt = function() return wrapper.ffg2dsb end,
		fits_read_2d_usht = function() return wrapper.ffg2dui end,
		fits_read_2d_ulng = function() return wrapper.ffg2duj end,
		fits_read_2d_sht = function() return wrapper.ffg2di end,
		fits_read_2d_lng = function() return wrapper.ffg2dj end,
		fits_read_2d_ulnglng = function() return wrapper.ffg2dujj end,
		fits_read_2d_lnglng = function() return wrapper.ffg2djj end,
		fits_read_2d_uint = function() return wrapper.ffg2duk end,
		fits_read_2d_int = function() return wrapper.ffg2dk end,
		fits_read_2d_flt = function() return wrapper.ffg2de end,
		fits_read_2d_dbl = function() return wrapper.ffg2dd end,
		fits_read_3d_byt = function() return wrapper.ffg3db end,
		fits_read_3d_sbyt = function() return wrapper.ffg3dsb end,
		fits_read_3d_usht = function() return wrapper.ffg3dui end,
		fits_read_3d_ulng = function() return wrapper.ffg3duj end,
		fits_read_3d_sht = function() return wrapper.ffg3di end,
		fits_read_3d_lng = function() return wrapper.ffg3dj end,
		fits_read_3d_ulnglng = function() return wrapper.ffg3dujj end,
		fits_read_3d_lnglng = function() return wrapper.ffg3djj end,
		fits_read_3d_uint = function() return wrapper.ffg3duk end,
		fits_read_3d_int = function() return wrapper.ffg3dk end,
		fits_read_3d_flt = function() return wrapper.ffg3de end,
		fits_read_3d_dbl = function() return wrapper.ffg3dd end,
		fits_read_subset = function() return wrapper.ffgsv end,
		fits_read_subset_byt = function() return wrapper.ffgsvb end,
		fits_read_subset_sbyt = function() return wrapper.ffgsvsb end,
		fits_read_subset_usht = function() return wrapper.ffgsvui end,
		fits_read_subset_ulng = function() return wrapper.ffgsvuj end,
		fits_read_subset_sht = function() return wrapper.ffgsvi end,
		fits_read_subset_lng = function() return wrapper.ffgsvj end,
		fits_read_subset_ulnglng = function() return wrapper.ffgsvujj end,
		fits_read_subset_lnglng = function() return wrapper.ffgsvjj end,
		fits_read_subset_uint = function() return wrapper.ffgsvuk end,
		fits_read_subset_int = function() return wrapper.ffgsvk end,
		fits_read_subset_flt = function() return wrapper.ffgsve end,
		fits_read_subset_dbl = function() return wrapper.ffgsvd end,
		fits_read_subsetnull_byt = function() return wrapper.ffgsfb end,
		fits_read_subsetnull_sbyt = function() return wrapper.ffgsfsb end,
		fits_read_subsetnull_usht = function() return wrapper.ffgsfui end,
		fits_read_subsetnull_ulng = function() return wrapper.ffgsfuj end,
		fits_read_subsetnull_sht = function() return wrapper.ffgsfi end,
		fits_read_subsetnull_lng = function() return wrapper.ffgsfj end,
		fits_read_subsetnull_ulnglng = function() return wrapper.ffgsfujj end,
		fits_read_subsetnull_lnglng = function() return wrapper.ffgsfjj end,
		fits_read_subsetnull_uint = function() return wrapper.ffgsfuk end,
		fits_read_subsetnull_int = function() return wrapper.ffgsfk end,
		fits_read_subsetnull_flt = function() return wrapper.ffgsfe end,
		fits_read_subsetnull_dbl = function() return wrapper.ffgsfd end,
		ffcpimg = function() return wrapper.fits_copy_image_section end,
		fits_decompress_img = function() return wrapper.fits_decomp_img end,
		fits_read_col = function() return wrapper.ffgcv end,
		fits_read_cols = function() return wrapper.ffgcvn end,
		fits_read_colnull = function() return wrapper.ffgcf end,
		fits_read_col_str = function() return wrapper.ffgcvs end,
		fits_read_col_log = function() return wrapper.ffgcvl end,
		fits_read_col_byt = function() return wrapper.ffgcvb end,
		fits_read_col_sbyt = function() return wrapper.ffgcvsb end,
		fits_read_col_usht = function() return wrapper.ffgcvui end,
		fits_read_col_ulng = function() return wrapper.ffgcvuj end,
		fits_read_col_sht = function() return wrapper.ffgcvi end,
		fits_read_col_lng = function() return wrapper.ffgcvj end,
		fits_read_col_ulnglng = function() return wrapper.ffgcvujj end,
		fits_read_col_lnglng = function() return wrapper.ffgcvjj end,
		fits_read_col_uint = function() return wrapper.ffgcvuk end,
		fits_read_col_int = function() return wrapper.ffgcvk end,
		fits_read_col_flt = function() return wrapper.ffgcve end,
		fits_read_col_dbl = function() return wrapper.ffgcvd end,
		fits_read_col_cmp = function() return wrapper.ffgcvc end,
		fits_read_col_dblcmp = function() return wrapper.ffgcvm end,
		fits_read_col_bit = function() return wrapper.ffgcx end,
		fits_read_col_bit_usht = function() return wrapper.ffgcxui end,
		fits_read_col_bit_uint = function() return wrapper.ffgcxuk end,
		fits_read_colnull_str = function() return wrapper.ffgcfs end,
		fits_read_colnull_log = function() return wrapper.ffgcfl end,
		fits_read_colnull_byt = function() return wrapper.ffgcfb end,
		fits_read_colnull_sbyt = function() return wrapper.ffgcfsb end,
		fits_read_colnull_usht = function() return wrapper.ffgcfui end,
		fits_read_colnull_ulng = function() return wrapper.ffgcfuj end,
		fits_read_colnull_sht = function() return wrapper.ffgcfi end,
		fits_read_colnull_lng = function() return wrapper.ffgcfj end,
		fits_read_colnull_ulnglng = function() return wrapper.ffgcfujj end,
		fits_read_colnull_lnglng = function() return wrapper.ffgcfjj end,
		fits_read_colnull_uint = function() return wrapper.ffgcfuk end,
		fits_read_colnull_int = function() return wrapper.ffgcfk end,
		fits_read_colnull_flt = function() return wrapper.ffgcfe end,
		fits_read_colnull_dbl = function() return wrapper.ffgcfd end,
		fits_read_colnull_cmp = function() return wrapper.ffgcfc end,
		fits_read_colnull_dblcmp = function() return wrapper.ffgcfm end,
		fits_read_descript = function() return wrapper.ffgdes end,
		fits_read_descriptll = function() return wrapper.ffgdesll end,
		fits_read_descripts = function() return wrapper.ffgdess end,
		fits_read_descriptsll = function() return wrapper.ffgdessll end,
		fits_read_tblbytes = function() return wrapper.ffgtbb end,
		fits_write_grppar_byt = function() return wrapper.ffpgpb end,
		fits_write_grppar_sbyt = function() return wrapper.ffpgpsb end,
		fits_write_grppar_usht = function() return wrapper.ffpgpui end,
		fits_write_grppar_ulng = function() return wrapper.ffpgpuj end,
		fits_write_grppar_sht = function() return wrapper.ffpgpi end,
		fits_write_grppar_lng = function() return wrapper.ffpgpj end,
		fits_write_grppar_ulnglng = function() return wrapper.ffpgpujj end,
		fits_write_grppar_lnglng = function() return wrapper.ffpgpjj end,
		fits_write_grppar_uint = function() return wrapper.ffpgpuk end,
		fits_write_grppar_int = function() return wrapper.ffpgpk end,
		fits_write_grppar_flt = function() return wrapper.ffpgpe end,
		fits_write_grppar_dbl = function() return wrapper.ffpgpd end,
		fits_write_pix = function() return wrapper.ffppx end,
		fits_write_pixll = function() return wrapper.ffppxll end,
		fits_write_pixnull = function() return wrapper.ffppxn end,
		fits_write_pixnullll = function() return wrapper.ffppxnll end,
		fits_write_img = function() return wrapper.ffppr end,
		fits_write_img_byt = function() return wrapper.ffpprb end,
		fits_write_img_sbyt = function() return wrapper.ffpprsb end,
		fits_write_img_usht = function() return wrapper.ffpprui end,
		fits_write_img_ulng = function() return wrapper.ffppruj end,
		fits_write_img_sht = function() return wrapper.ffppri end,
		fits_write_img_lng = function() return wrapper.ffpprj end,
		fits_write_img_ulnglng = function() return wrapper.ffpprujj end,
		fits_write_img_lnglng = function() return wrapper.ffpprjj end,
		fits_write_img_uint = function() return wrapper.ffppruk end,
		fits_write_img_int = function() return wrapper.ffpprk end,
		fits_write_img_flt = function() return wrapper.ffppre end,
		fits_write_img_dbl = function() return wrapper.ffpprd end,
		fits_write_imgnull = function() return wrapper.ffppn end,
		fits_write_imgnull_byt = function() return wrapper.ffppnb end,
		fits_write_imgnull_sbyt = function() return wrapper.ffppnsb end,
		fits_write_imgnull_usht = function() return wrapper.ffppnui end,
		fits_write_imgnull_ulng = function() return wrapper.ffppnuj end,
		fits_write_imgnull_sht = function() return wrapper.ffppni end,
		fits_write_imgnull_lng = function() return wrapper.ffppnj end,
		fits_write_imgnull_ulnglng = function() return wrapper.ffppnujj end,
		fits_write_imgnull_lnglng = function() return wrapper.ffppnjj end,
		fits_write_imgnull_uint = function() return wrapper.ffppnuk end,
		fits_write_imgnull_int = function() return wrapper.ffppnk end,
		fits_write_imgnull_flt = function() return wrapper.ffppne end,
		fits_write_imgnull_dbl = function() return wrapper.ffppnd end,
		fits_write_img_null = function() return wrapper.ffppru end,
		fits_write_null_img = function() return wrapper.ffpprn end,
		fits_write_2d_byt = function() return wrapper.ffp2db end,
		fits_write_2d_sbyt = function() return wrapper.ffp2dsb end,
		fits_write_2d_usht = function() return wrapper.ffp2dui end,
		fits_write_2d_ulng = function() return wrapper.ffp2duj end,
		fits_write_2d_sht = function() return wrapper.ffp2di end,
		fits_write_2d_lng = function() return wrapper.ffp2dj end,
		fits_write_2d_ulnglng = function() return wrapper.ffp2dujj end,
		fits_write_2d_lnglng = function() return wrapper.ffp2djj end,
		fits_write_2d_uint = function() return wrapper.ffp2duk end,
		fits_write_2d_int = function() return wrapper.ffp2dk end,
		fits_write_2d_flt = function() return wrapper.ffp2de end,
		fits_write_2d_dbl = function() return wrapper.ffp2dd end,
		fits_write_3d_byt = function() return wrapper.ffp3db end,
		fits_write_3d_sbyt = function() return wrapper.ffp3dsb end,
		fits_write_3d_usht = function() return wrapper.ffp3dui end,
		fits_write_3d_ulng = function() return wrapper.ffp3duj end,
		fits_write_3d_sht = function() return wrapper.ffp3di end,
		fits_write_3d_lng = function() return wrapper.ffp3dj end,
		fits_write_3d_ulnglng = function() return wrapper.ffp3dujj end,
		fits_write_3d_lnglng = function() return wrapper.ffp3djj end,
		fits_write_3d_uint = function() return wrapper.ffp3duk end,
		fits_write_3d_int = function() return wrapper.ffp3dk end,
		fits_write_3d_flt = function() return wrapper.ffp3de end,
		fits_write_3d_dbl = function() return wrapper.ffp3dd end,
		fits_write_subset = function() return wrapper.ffpss end,
		fits_write_subset_byt = function() return wrapper.ffpssb end,
		fits_write_subset_sbyt = function() return wrapper.ffpsssb end,
		fits_write_subset_usht = function() return wrapper.ffpssui end,
		fits_write_subset_ulng = function() return wrapper.ffpssuj end,
		fits_write_subset_sht = function() return wrapper.ffpssi end,
		fits_write_subset_lng = function() return wrapper.ffpssj end,
		fits_write_subset_ulnglng = function() return wrapper.ffpssujj end,
		fits_write_subset_lnglng = function() return wrapper.ffpssjj end,
		fits_write_subset_uint = function() return wrapper.ffpssuk end,
		fits_write_subset_int = function() return wrapper.ffpssk end,
		fits_write_subset_flt = function() return wrapper.ffpsse end,
		fits_write_subset_dbl = function() return wrapper.ffpssd end,
		fits_write_col = function() return wrapper.ffpcl end,
		fits_write_cols = function() return wrapper.ffpcln end,
		fits_write_col_str = function() return wrapper.ffpcls end,
		fits_write_col_log = function() return wrapper.ffpcll end,
		fits_write_col_byt = function() return wrapper.ffpclb end,
		fits_write_col_sbyt = function() return wrapper.ffpclsb end,
		fits_write_col_usht = function() return wrapper.ffpclui end,
		fits_write_col_ulng = function() return wrapper.ffpcluj end,
		fits_write_col_sht = function() return wrapper.ffpcli end,
		fits_write_col_lng = function() return wrapper.ffpclj end,
		fits_write_col_ulnglng = function() return wrapper.ffpclujj end,
		fits_write_col_lnglng = function() return wrapper.ffpcljj end,
		fits_write_col_uint = function() return wrapper.ffpcluk end,
		fits_write_col_int = function() return wrapper.ffpclk end,
		fits_write_col_flt = function() return wrapper.ffpcle end,
		fits_write_col_dbl = function() return wrapper.ffpcld end,
		fits_write_col_cmp = function() return wrapper.ffpclc end,
		fits_write_col_dblcmp = function() return wrapper.ffpclm end,
		fits_write_col_null = function() return wrapper.ffpclu end,
		fits_write_col_bit = function() return wrapper.ffpclx end,
		fits_write_nulrows = function() return wrapper.ffprwu end,
		fits_write_nullrows = function() return wrapper.ffprwu end,
		fits_write_colnull = function() return wrapper.ffpcn end,
		fits_write_colnull_str = function() return wrapper.ffpcns end,
		fits_write_colnull_log = function() return wrapper.ffpcnl end,
		fits_write_colnull_byt = function() return wrapper.ffpcnb end,
		fits_write_colnull_sbyt = function() return wrapper.ffpcnsb end,
		fits_write_colnull_usht = function() return wrapper.ffpcnui end,
		fits_write_colnull_ulng = function() return wrapper.ffpcnuj end,
		fits_write_colnull_sht = function() return wrapper.ffpcni end,
		fits_write_colnull_lng = function() return wrapper.ffpcnj end,
		fits_write_colnull_ulnglng = function() return wrapper.ffpcnujj end,
		fits_write_colnull_lnglng = function() return wrapper.ffpcnjj end,
		fits_write_colnull_uint = function() return wrapper.ffpcnuk end,
		fits_write_colnull_int = function() return wrapper.ffpcnk end,
		fits_write_colnull_flt = function() return wrapper.ffpcne end,
		fits_write_colnull_dbl = function() return wrapper.ffpcnd end,
		fits_write_ext = function() return wrapper.ffpextn end,
		fits_read_ext = function() return wrapper.ffgextn end,
		fits_write_descript = function() return wrapper.ffpdes end,
		fits_compress_heap = function() return wrapper.ffcmph end,
		fits_test_heap = function() return wrapper.fftheap end,
		fits_write_tblbytes = function() return wrapper.ffptbb end,
		fits_insert_rows = function() return wrapper.ffirow end,
		fits_delete_rows = function() return wrapper.ffdrow end,
		fits_delete_rowrange = function() return wrapper.ffdrrg end,
		fits_delete_rowlist = function() return wrapper.ffdrws end,
		fits_delete_rowlistll = function() return wrapper.ffdrwsll end,
		fits_insert_col = function() return wrapper.fficol end,
		fits_insert_cols = function() return wrapper.fficls end,
		fits_delete_col = function() return wrapper.ffdcol end,
		fits_copy_col = function() return wrapper.ffcpcl end,
		fits_copy_cols = function() return wrapper.ffccls end,
		fits_copy_rows = function() return wrapper.ffcprw end,
		fits_copy_selrows = function() return wrapper.ffcpsr end,
		fits_modify_vector_len = function() return wrapper.ffmvec end,
		fits_read_img_coord = function() return wrapper.ffgics end,
		fits_read_img_coord_version = function() return wrapper.ffgicsa end,
		fits_read_tbl_coord = function() return wrapper.ffgtcs end,
		fits_pix_to_world = function() return wrapper.ffwldp end,
		fits_world_to_pix = function() return wrapper.ffxypx end,
		fits_get_image_wcs_keys = function() return wrapper.ffgiwcs end,
		fits_get_table_wcs_keys = function() return wrapper.ffgtwcs end,
		fits_find_rows = function() return wrapper.fffrow end,
		fits_find_first_row = function() return wrapper.ffffrw end,
		fits_find_rows_cmp = function() return wrapper.fffrwc end,
		fits_select_rows = function() return wrapper.ffsrow end,
		fits_calc_rows = function() return wrapper.ffcrow end,
		fits_calculator = function() return wrapper.ffcalc end,
		fits_calculator_rng = function() return wrapper.ffcalc_rng end,
		fits_test_expr = function() return wrapper.fftexp end,
		fits_create_group = function() return wrapper.ffgtcr end,
		fits_insert_group = function() return wrapper.ffgtis end,
		fits_change_group = function() return wrapper.ffgtch end,
		fits_remove_group = function() return wrapper.ffgtrm end,
		fits_copy_group = function() return wrapper.ffgtcp end,
		fits_merge_groups = function() return wrapper.ffgtmg end,
		fits_compact_group = function() return wrapper.ffgtcm end,
		fits_verify_group = function() return wrapper.ffgtvf end,
		fits_open_group = function() return wrapper.ffgtop end,
		fits_add_group_member = function() return wrapper.ffgtam end,
		fits_get_num_members = function() return wrapper.ffgtnm end,
		fits_get_num_groups = function() return wrapper.ffgmng end,
		fits_open_member = function() return wrapper.ffgmop end,
		fits_copy_member = function() return wrapper.ffgmcp end,
		fits_transfer_member = function() return wrapper.ffgmtf end,
		fits_remove_member = function() return wrapper.ffgmrm end,
		fits_init_https = function() return wrapper.ffihtps end,
		fits_cleanup_https = function() return wrapper.ffchtps end,
		fits_verbose_https = function() return wrapper.ffvhtps end,
		fits_show_download_progress = function() return wrapper.ffshdwn end,
		fits_get_timeout = function() return wrapper.ffgtmo end,
		fits_set_timeout = function() return wrapper.ffstmo end,
		fits_open_file = function() return function(...) return wrapper.ffopentest(lib.CFITSIO_SONAME, ...) end end,
	},
}
return wrapper
